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
- AppSettingsReader.cs
- TemplateControl.cs
- CalendarDay.cs
- NameValuePair.cs
- VirtualPathUtility.cs
- Missing.cs
- SerializableAttribute.cs
- DrawingAttributeSerializer.cs
- WindowsGraphicsCacheManager.cs
- WorkflowPersistenceContext.cs
- EnlistmentState.cs
- BooleanConverter.cs
- MediaElement.cs
- CompositeTypefaceMetrics.cs
- Stylus.cs
- OutputCacheSettings.cs
- TableItemProviderWrapper.cs
- InvokeMethodActivity.cs
- DataConnectionHelper.cs
- HttpHostedTransportConfiguration.cs
- LocalFileSettingsProvider.cs
- JsonServiceDocumentSerializer.cs
- QuaternionConverter.cs
- RedirectionProxy.cs
- AsmxEndpointPickerExtension.cs
- TextBoxBase.cs
- AnimationLayer.cs
- HttpListener.cs
- TextLine.cs
- WebPartConnectionsCancelEventArgs.cs
- CssClassPropertyAttribute.cs
- WebPartCancelEventArgs.cs
- CustomErrorCollection.cs
- WebResponse.cs
- AutoFocusStyle.xaml.cs
- Empty.cs
- CoTaskMemHandle.cs
- TimeSpanValidator.cs
- StringUtil.cs
- SqlSupersetValidator.cs
- DataBoundControl.cs
- HttpSessionStateWrapper.cs
- RTLAwareMessageBox.cs
- AppSecurityManager.cs
- GridPattern.cs
- Function.cs
- PagesSection.cs
- NamespaceQuery.cs
- _BasicClient.cs
- ExplicitDiscriminatorMap.cs
- Vector3dCollection.cs
- wmiprovider.cs
- WebControl.cs
- TableRow.cs
- TimeIntervalCollection.cs
- XmlSchemaException.cs
- BooleanProjectedSlot.cs
- CodeCastExpression.cs
- XmlTextReaderImpl.cs
- Compiler.cs
- Image.cs
- QuestionEventArgs.cs
- SecurityPolicySection.cs
- RealizationContext.cs
- Int32RectConverter.cs
- LazyTextWriterCreator.cs
- SqlCharStream.cs
- DataRowCollection.cs
- TreeNodeConverter.cs
- SqlDesignerDataSourceView.cs
- XPathSelectionIterator.cs
- Stack.cs
- SmtpReplyReaderFactory.cs
- ResourceSetExpression.cs
- _ConnectStream.cs
- SqlUserDefinedTypeAttribute.cs
- TextRenderer.cs
- URL.cs
- Comparer.cs
- GridSplitter.cs
- FixedNode.cs
- QueryCursorEventArgs.cs
- RefreshEventArgs.cs
- ISFClipboardData.cs
- CapabilitiesAssignment.cs
- SystemColorTracker.cs
- RecognitionEventArgs.cs
- CalendarKeyboardHelper.cs
- FormClosedEvent.cs
- TimelineClockCollection.cs
- ResXFileRef.cs
- PropertyGridCommands.cs
- HMACRIPEMD160.cs
- SpeechUI.cs
- DocumentOrderQuery.cs
- PartManifestEntry.cs
- PopOutPanel.cs
- SBCSCodePageEncoding.cs
- DataSvcMapFile.cs
- StatusBarItem.cs