Code:
/ DotNET / DotNET / 8.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
- HttpResponseHeader.cs
- WindowsNonControl.cs
- LayoutEngine.cs
- ConsumerConnectionPointCollection.cs
- PointAnimationUsingPath.cs
- NonBatchDirectoryCompiler.cs
- SR.cs
- SessionState.cs
- ByteConverter.cs
- HtmlEncodedRawTextWriter.cs
- FileRecordSequenceCompletedAsyncResult.cs
- StringKeyFrameCollection.cs
- QilBinary.cs
- CommandLibraryHelper.cs
- _BufferOffsetSize.cs
- FrameworkElementFactory.cs
- XamlPointCollectionSerializer.cs
- Point.cs
- ProfileServiceManager.cs
- DataErrorValidationRule.cs
- SelectedDatesCollection.cs
- SoundPlayer.cs
- smtppermission.cs
- XmlNodeChangedEventManager.cs
- CopyCodeAction.cs
- VolatileResourceManager.cs
- DictionaryGlobals.cs
- XmlAttributeOverrides.cs
- NamespaceExpr.cs
- OciLobLocator.cs
- HttpListenerContext.cs
- PageClientProxyGenerator.cs
- XamlFigureLengthSerializer.cs
- XsdCachingReader.cs
- HebrewNumber.cs
- ValueConversionAttribute.cs
- AttachedPropertiesService.cs
- VirtualizingStackPanel.cs
- RunInstallerAttribute.cs
- EndpointDiscoveryBehavior.cs
- _Semaphore.cs
- NavigationFailedEventArgs.cs
- RegexParser.cs
- DocumentViewer.cs
- LayoutEvent.cs
- ResourceManager.cs
- Image.cs
- Style.cs
- ServiceOperationListItemList.cs
- DataServiceStreamProviderWrapper.cs
- ClientSponsor.cs
- DocumentReference.cs
- Filter.cs
- MultiAsyncResult.cs
- AbsoluteQuery.cs
- GridViewCellAutomationPeer.cs
- InheritanceContextChangedEventManager.cs
- PathGradientBrush.cs
- ClickablePoint.cs
- MyContact.cs
- XPathEmptyIterator.cs
- TextBoxBaseDesigner.cs
- _emptywebproxy.cs
- DefaultBinder.cs
- DetailsViewAutoFormat.cs
- TextDocumentView.cs
- XmlSchemaObject.cs
- CodeTypeDelegate.cs
- BinaryMethodMessage.cs
- DataService.cs
- WebPartTransformerAttribute.cs
- FreeIndexList.cs
- MultiView.cs
- Int64AnimationBase.cs
- HttpCapabilitiesBase.cs
- ItemsPresenter.cs
- XmlSchemaAll.cs
- ResourceContainerWrapper.cs
- SafeArrayTypeMismatchException.cs
- ResourceManagerWrapper.cs
- DataTableNameHandler.cs
- AccessViolationException.cs
- validationstate.cs
- UIElementHelper.cs
- BaseParser.cs
- TCPClient.cs
- Page.cs
- HelpKeywordAttribute.cs
- StyleCollection.cs
- SpeechUI.cs
- TagMapInfo.cs
- SettingsAttributeDictionary.cs
- BackStopAuthenticationModule.cs
- HttpCachePolicy.cs
- UnaryOperationBinder.cs
- Win32KeyboardDevice.cs
- DateTimeOffsetStorage.cs
- OpCellTreeNode.cs
- CodeDOMProvider.cs
- GenerateHelper.cs