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
- XmlIlGenerator.cs
- BehaviorEditorPart.cs
- CollectionsUtil.cs
- Funcletizer.cs
- EntityParameter.cs
- RoleManagerEventArgs.cs
- XmlHierarchicalDataSourceView.cs
- CustomAttributeFormatException.cs
- MetaColumn.cs
- SqlInternalConnectionTds.cs
- XmlObjectSerializerWriteContextComplexJson.cs
- _NetRes.cs
- AnyAllSearchOperator.cs
- ContentElement.cs
- Win32KeyboardDevice.cs
- DataBoundLiteralControl.cs
- StylusPlugin.cs
- Translator.cs
- ScrollBarAutomationPeer.cs
- PerformanceCounterCategory.cs
- StreamGeometryContext.cs
- ViewLoader.cs
- UnauthorizedWebPart.cs
- SingleObjectCollection.cs
- ObjectDataSourceMethodEventArgs.cs
- Flattener.cs
- FileLogRecordEnumerator.cs
- HttpListenerContext.cs
- QilFunction.cs
- SiblingIterators.cs
- SmtpAuthenticationManager.cs
- HttpHandlerAction.cs
- InputEventArgs.cs
- TransformerInfoCollection.cs
- DataGridTemplateColumn.cs
- DateTimeStorage.cs
- ImageMetadata.cs
- SQLMoney.cs
- PointCollection.cs
- securestring.cs
- CodeTypeReferenceCollection.cs
- ToolStripItemClickedEventArgs.cs
- GetWorkflowTree.cs
- ItemsControl.cs
- OrthographicCamera.cs
- MessageEventSubscriptionService.cs
- ObjectQuery_EntitySqlExtensions.cs
- SafeHandle.cs
- SponsorHelper.cs
- HandlerBase.cs
- ContractMapping.cs
- GridViewSelectEventArgs.cs
- SiteMapSection.cs
- UTF8Encoding.cs
- FillBehavior.cs
- Propagator.JoinPropagator.cs
- ArglessEventHandlerProxy.cs
- TileModeValidation.cs
- CuspData.cs
- ColorDialog.cs
- NameTable.cs
- BitmapEncoder.cs
- RuleSettingsCollection.cs
- Table.cs
- BamlStream.cs
- CachedTypeface.cs
- Clipboard.cs
- oledbmetadatacollectionnames.cs
- SqlRowUpdatedEvent.cs
- AssertFilter.cs
- PagedDataSource.cs
- HiddenFieldPageStatePersister.cs
- ToolTipAutomationPeer.cs
- EntityClientCacheEntry.cs
- FamilyMapCollection.cs
- ScrollProperties.cs
- X509Extension.cs
- ILGen.cs
- FocusTracker.cs
- StringHandle.cs
- GlobalizationSection.cs
- KnownColorTable.cs
- PngBitmapEncoder.cs
- TableProviderWrapper.cs
- SafeWaitHandle.cs
- SByte.cs
- BrushMappingModeValidation.cs
- SwitchElementsCollection.cs
- ConnectionProviderAttribute.cs
- AndCondition.cs
- GiveFeedbackEventArgs.cs
- CacheAxisQuery.cs
- AsymmetricAlgorithm.cs
- XmlSchemaSubstitutionGroup.cs
- WinInetCache.cs
- SqlCharStream.cs
- RoutedEventHandlerInfo.cs
- ValidatedControlConverter.cs
- BitVector32.cs
- RequestChannel.cs