Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Data / System / Data / ProviderBase / DbConnectionClosed.cs / 1 / DbConnectionClosed.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Data.ProviderBase { using System; using System.ComponentModel; using System.Data; using System.Data.Common; using System.Diagnostics; using System.Globalization; using System.Threading; using SysTx = System.Transactions; abstract internal class DbConnectionClosed : DbConnectionInternal { // Construct an "empty" connection protected DbConnectionClosed(ConnectionState state, bool hidePassword, bool allowSetConnectionString) : base(state, hidePassword, allowSetConnectionString) { } override public string ServerVersion { get { throw ADP.ClosedConnectionError(); } } override protected void Activate(SysTx.Transaction transaction) { throw ADP.ClosedConnectionError(); } override public DbTransaction BeginTransaction(IsolationLevel il) { throw ADP.ClosedConnectionError(); } override public void ChangeDatabase(string database) { throw ADP.ClosedConnectionError(); } internal override void CloseConnection(DbConnection owningObject, DbConnectionFactory connectionFactory) { // not much to do here... } override protected void Deactivate() { throw ADP.ClosedConnectionError(); } override public void EnlistTransaction(SysTx.Transaction transaction) { throw ADP.ClosedConnectionError(); } override protected internal DataTable GetSchema(DbConnectionFactory factory, DbConnectionPoolGroup poolGroup, DbConnection outerConnection, string collectionName, string[] restrictions) { throw ADP.ClosedConnectionError(); } internal override void OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) { // Closed->Connecting: prevent set_ConnectionString during Open if (connectionFactory.SetInnerConnectionFrom(outerConnection, DbConnectionClosedConnecting.SingletonInstance, this)) { DbConnectionInternal openConnection = null; try { connectionFactory.PermissionDemand(outerConnection); openConnection = connectionFactory.GetConnection(outerConnection); } catch { // This should occure for all exceptions, even ADP.UnCatchableExceptions. connectionFactory.SetInnerConnectionTo(outerConnection, this); throw; } if (null == openConnection) { connectionFactory.SetInnerConnectionTo(outerConnection, this); throw ADP.InternalConnectionError(ADP.ConnectionError.GetConnectionReturnsNull); } connectionFactory.SetInnerConnectionEvent(outerConnection, openConnection); } } } abstract internal class DbConnectionBusy : DbConnectionClosed { protected DbConnectionBusy(ConnectionState state) : base(state, true, false) { } internal override void OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) { throw ADP.ConnectionAlreadyOpen(State); } } sealed internal class DbConnectionClosedBusy : DbConnectionBusy { // Closed Connection, Currently Busy - changing connection string internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedBusy(); // singleton object private DbConnectionClosedBusy() : base(ConnectionState.Closed) { } } sealed internal class DbConnectionOpenBusy : DbConnectionBusy { // Open Connection, Currently Busy - closing connection internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionOpenBusy(); // singleton object private DbConnectionOpenBusy() : base(ConnectionState.Open) { } } sealed internal class DbConnectionClosedConnecting : DbConnectionBusy { // Closed Connection, Currently Connecting internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedConnecting(); // singleton object private DbConnectionClosedConnecting() : base(ConnectionState.Connecting) { } } sealed internal class DbConnectionClosedNeverOpened : DbConnectionClosed { // Closed Connection, Has Never Been Opened internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedNeverOpened(); // singleton object private DbConnectionClosedNeverOpened() : base(ConnectionState.Closed, false, true) { } } sealed internal class DbConnectionClosedPreviouslyOpened : DbConnectionClosed { // Closed Connection, Has Previously Been Opened internal static readonly DbConnectionInternal SingletonInstance = new DbConnectionClosedPreviouslyOpened(); // singleton object private DbConnectionClosedPreviouslyOpened() : base(ConnectionState.Closed, true, true) { } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompoundFileIOPermission.cs
- TypeSystemProvider.cs
- DataPagerField.cs
- StringBlob.cs
- InvokeGenerator.cs
- BaseUriHelper.cs
- XmlDataSourceNodeDescriptor.cs
- GenericEnumerator.cs
- Hashtable.cs
- VisualTarget.cs
- StickyNote.cs
- ReflectionServiceProvider.cs
- SamlAuthenticationClaimResource.cs
- InProcStateClientManager.cs
- ThreadStaticAttribute.cs
- TypeConstant.cs
- ControlUtil.cs
- JavaScriptObjectDeserializer.cs
- ServiceRoute.cs
- ExecutionEngineException.cs
- brushes.cs
- SqlDataReader.cs
- BitVector32.cs
- ListMarkerLine.cs
- Property.cs
- ToolBar.cs
- InvalidOperationException.cs
- Rect3D.cs
- ApplicationId.cs
- httpstaticobjectscollection.cs
- InputScopeConverter.cs
- NavigationPropertyEmitter.cs
- ToolStripItemTextRenderEventArgs.cs
- CmsUtils.cs
- NamespaceDecl.cs
- DataServiceException.cs
- AdapterUtil.cs
- GridViewDeleteEventArgs.cs
- TemplateKey.cs
- StatusBar.cs
- DataSourceConverter.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- WindowsListViewGroup.cs
- SafeWaitHandle.cs
- DropShadowBitmapEffect.cs
- WebContentFormatHelper.cs
- AttachmentCollection.cs
- OdbcEnvironmentHandle.cs
- EventLogTraceListener.cs
- DBConnectionString.cs
- GridViewRowEventArgs.cs
- StringResourceManager.cs
- DataGridItemEventArgs.cs
- XDeferredAxisSource.cs
- ToolStripDropDownItem.cs
- ExtractCollection.cs
- Rules.cs
- versioninfo.cs
- CatalogZone.cs
- NameTable.cs
- JsonCollectionDataContract.cs
- Decoder.cs
- _BasicClient.cs
- AssertSection.cs
- PersonalizationStateInfo.cs
- TextFormatterContext.cs
- WebDisplayNameAttribute.cs
- VersionUtil.cs
- OneOfConst.cs
- DataServiceExpressionVisitor.cs
- BufferedStream.cs
- FilterEventArgs.cs
- Stylesheet.cs
- ForEachAction.cs
- OutputCacheProfileCollection.cs
- CommandBinding.cs
- GACMembershipCondition.cs
- TextContainer.cs
- XmlUTF8TextReader.cs
- Window.cs
- MultiByteCodec.cs
- SchemaImporter.cs
- ComplexLine.cs
- CriticalExceptions.cs
- InternalSafeNativeMethods.cs
- HasRunnableWorkflowEvent.cs
- VectorCollection.cs
- URLMembershipCondition.cs
- Psha1DerivedKeyGenerator.cs
- WindowsAltTab.cs
- FontInfo.cs
- SecurityState.cs
- TransformerInfo.cs
- UserInitiatedRoutedEventPermission.cs
- DataRelationCollection.cs
- ScrollData.cs
- RsaSecurityToken.cs
- XmlDataFileEditor.cs
- RangeValuePatternIdentifiers.cs
- ResourceWriter.cs