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
- Interfaces.cs
- ReadOnlyNameValueCollection.cs
- CodeDomSerializerException.cs
- CodeStatementCollection.cs
- ExpandCollapseProviderWrapper.cs
- ContainerFilterService.cs
- RuleInfoComparer.cs
- IndexOutOfRangeException.cs
- DataGridColumnCollection.cs
- SafeFileMappingHandle.cs
- BasicExpressionVisitor.cs
- DbConnectionPoolOptions.cs
- WebServiceErrorEvent.cs
- TargetConverter.cs
- RandomNumberGenerator.cs
- ServiceInfo.cs
- RangeContentEnumerator.cs
- CodeCatchClauseCollection.cs
- MembershipValidatePasswordEventArgs.cs
- ConditionalDesigner.cs
- DragStartedEventArgs.cs
- FileLogRecordHeader.cs
- DescendantQuery.cs
- EntityCommand.cs
- WebProxyScriptElement.cs
- Message.cs
- MD5HashHelper.cs
- CellRelation.cs
- XmlQuerySequence.cs
- HuffCodec.cs
- SQLUtility.cs
- Expression.cs
- WinEventTracker.cs
- EdmItemCollection.OcAssemblyCache.cs
- HostedBindingBehavior.cs
- TemplateXamlTreeBuilder.cs
- ComponentGlyph.cs
- MatrixTransform3D.cs
- ItemCollection.cs
- EditorPartChrome.cs
- KeyManager.cs
- ConnectorDragDropGlyph.cs
- ConfigurationStrings.cs
- VerificationAttribute.cs
- Span.cs
- SqlBuilder.cs
- NameValueSectionHandler.cs
- RuntimeArgumentHandle.cs
- MarshalByRefObject.cs
- GridViewEditEventArgs.cs
- ComProxy.cs
- COM2IPerPropertyBrowsingHandler.cs
- Rule.cs
- Border.cs
- CodeVariableReferenceExpression.cs
- GridViewAutomationPeer.cs
- QuotedStringWriteStateInfo.cs
- FilterFactory.cs
- EmissiveMaterial.cs
- Typography.cs
- NavigationCommands.cs
- TimerElapsedEvenArgs.cs
- ResXBuildProvider.cs
- InputBindingCollection.cs
- LineProperties.cs
- TcpDuplicateContext.cs
- GroupBoxRenderer.cs
- SimpleLine.cs
- TdsParserSafeHandles.cs
- ResourceWriter.cs
- MenuItem.cs
- HttpTransportBindingElement.cs
- OleDbSchemaGuid.cs
- DesignerAdapterAttribute.cs
- UnsettableComboBox.cs
- MultiView.cs
- TypographyProperties.cs
- DataProtection.cs
- DataGridViewCellPaintingEventArgs.cs
- SessionState.cs
- ComboBoxAutomationPeer.cs
- SizeAnimationBase.cs
- DataGridItemEventArgs.cs
- _TLSstream.cs
- EdmScalarPropertyAttribute.cs
- SerialErrors.cs
- SqlDataSourceSelectingEventArgs.cs
- MessageEncodingBindingElementImporter.cs
- ComplexBindingPropertiesAttribute.cs
- Query.cs
- HMACSHA256.cs
- ColumnMapTranslator.cs
- CatalogZoneBase.cs
- XPathScanner.cs
- SqlServices.cs
- HttpCacheParams.cs
- ServiceBusyException.cs
- DataColumnCollection.cs
- SymbolDocumentGenerator.cs
- BaseUriHelper.cs