Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / ProviderBase / DbConnectionClosed.cs / 1305376 / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Classification.cs
- UserPersonalizationStateInfo.cs
- SerializableAttribute.cs
- Cursor.cs
- Stack.cs
- WinOEToolBoxItem.cs
- PrimitiveDataContract.cs
- MetadataFile.cs
- ConsoleEntryPoint.cs
- TcpChannelFactory.cs
- X509CertificateCollection.cs
- WpfKnownMember.cs
- RoutedEventHandlerInfo.cs
- ConstraintCollection.cs
- MatrixAnimationUsingKeyFrames.cs
- FlowLayoutSettings.cs
- MasterPageParser.cs
- BindingsCollection.cs
- TypographyProperties.cs
- IsolatedStorageFilePermission.cs
- CalendarDataBindingHandler.cs
- NavigatorOutput.cs
- TemplateLookupAction.cs
- JulianCalendar.cs
- securitycriticaldata.cs
- EmptyStringExpandableObjectConverter.cs
- LayoutExceptionEventArgs.cs
- QueryOpeningEnumerator.cs
- Property.cs
- DeclarationUpdate.cs
- DebugView.cs
- PasswordTextContainer.cs
- DrawingAttributeSerializer.cs
- EndpointReference.cs
- LazyLoadBehavior.cs
- Simplifier.cs
- EventWaitHandleSecurity.cs
- ValidationResult.cs
- IChannel.cs
- MetafileHeaderWmf.cs
- MinimizableAttributeTypeConverter.cs
- HttpClientCredentialType.cs
- SortFieldComparer.cs
- FontNamesConverter.cs
- MessageBox.cs
- EntityDataSourceViewSchema.cs
- Helper.cs
- XmlChildEnumerator.cs
- SafeMarshalContext.cs
- KeyValuePair.cs
- MemberHolder.cs
- EditorZoneDesigner.cs
- GenerateTemporaryTargetAssembly.cs
- DescendantOverDescendantQuery.cs
- HashMembershipCondition.cs
- DeploymentSection.cs
- IPEndPointCollection.cs
- TypeHelpers.cs
- NumericUpDownAccelerationCollection.cs
- SQLUtility.cs
- ClientProtocol.cs
- EmbeddedMailObjectsCollection.cs
- DiagnosticsConfiguration.cs
- HelpFileFileNameEditor.cs
- ILGen.cs
- TextEditorMouse.cs
- Win32.cs
- VersionValidator.cs
- InputReport.cs
- ProxyWebPartConnectionCollection.cs
- DefaultCommandConverter.cs
- C14NUtil.cs
- HostVisual.cs
- EmptyReadOnlyDictionaryInternal.cs
- CapabilitiesRule.cs
- TaskExtensions.cs
- Constraint.cs
- WebBrowserEvent.cs
- ErrorTableItemStyle.cs
- ThousandthOfEmRealPoints.cs
- ContextMenuAutomationPeer.cs
- Message.cs
- CanonicalFormWriter.cs
- Storyboard.cs
- Thickness.cs
- ServerValidateEventArgs.cs
- CatalogZoneBase.cs
- SByteStorage.cs
- SelectionUIHandler.cs
- UInt32Converter.cs
- ExpressionBindingCollection.cs
- TypeToken.cs
- FlowDocumentScrollViewer.cs
- MarkupCompilePass2.cs
- XmlPreloadedResolver.cs
- ExcludeFromCodeCoverageAttribute.cs
- HttpPostedFile.cs
- DataObjectAttribute.cs
- DirectionalLight.cs
- Properties.cs