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
- ReachDocumentReferenceSerializerAsync.cs
- PagePropertiesChangingEventArgs.cs
- FullTextBreakpoint.cs
- DateTimeParse.cs
- AppDomainGrammarProxy.cs
- FlowLayoutPanel.cs
- RegisterInfo.cs
- ExpressionBuilder.cs
- WebHostUnsafeNativeMethods.cs
- LabelAutomationPeer.cs
- RectAnimationUsingKeyFrames.cs
- DetailsViewPageEventArgs.cs
- TextFormatterImp.cs
- KeyManager.cs
- HttpCacheVary.cs
- SqlDataSourceStatusEventArgs.cs
- Literal.cs
- GridViewSortEventArgs.cs
- CryptoHelper.cs
- AssociationSetMetadata.cs
- AggregatePushdown.cs
- RuntimeEnvironment.cs
- XPathCompileException.cs
- EmbeddedMailObject.cs
- LambdaReference.cs
- ManipulationLogic.cs
- AppDomainProtocolHandler.cs
- RegionIterator.cs
- DesigntimeLicenseContext.cs
- ExpressionBindingsDialog.cs
- Lookup.cs
- HtmlSelectionListAdapter.cs
- InnerItemCollectionView.cs
- StringArrayConverter.cs
- CombinedGeometry.cs
- TraceXPathNavigator.cs
- HtmlInputButton.cs
- SafeFileMappingHandle.cs
- SettingsAttributes.cs
- XmlLanguageConverter.cs
- User.cs
- DataControlFieldCell.cs
- BrowserDefinition.cs
- SmtpReplyReader.cs
- BamlBinaryWriter.cs
- DbMetaDataCollectionNames.cs
- GestureRecognizer.cs
- ObjectStateEntryDbDataRecord.cs
- CodeAccessSecurityEngine.cs
- Timer.cs
- SolidBrush.cs
- ObjectSet.cs
- SplashScreenNativeMethods.cs
- SQLDoubleStorage.cs
- DbConnectionStringCommon.cs
- XPathNodeList.cs
- SmtpTransport.cs
- ToolTipService.cs
- TreeViewImageIndexConverter.cs
- OdbcParameterCollection.cs
- CapabilitiesState.cs
- Currency.cs
- QueryStatement.cs
- FileDataSourceCache.cs
- SqlMethodCallConverter.cs
- BaseCAMarshaler.cs
- _SingleItemRequestCache.cs
- AncestorChangedEventArgs.cs
- HttpDictionary.cs
- JapaneseCalendar.cs
- EntityContainer.cs
- CodeCatchClauseCollection.cs
- EntityContainer.cs
- PrimitiveList.cs
- StateInitialization.cs
- ControlType.cs
- ListChangedEventArgs.cs
- BatchParser.cs
- WebServiceReceive.cs
- ControlPaint.cs
- CodeTypeReferenceExpression.cs
- UpdatePanel.cs
- FlowSwitch.cs
- ScriptComponentDescriptor.cs
- ZipIOEndOfCentralDirectoryBlock.cs
- HttpModuleCollection.cs
- PkcsMisc.cs
- SqlConnectionString.cs
- LogRecordSequence.cs
- CustomAssemblyResolver.cs
- OptimisticConcurrencyException.cs
- UserControl.cs
- CachedPathData.cs
- XmlBinaryWriterSession.cs
- RegexTree.cs
- TemplatePagerField.cs
- ValidationEventArgs.cs
- ThumbAutomationPeer.cs
- BaseInfoTable.cs
- SafeNativeMethods.cs