Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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.
//
// [....]
//-----------------------------------------------------------------------------
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
- CodeAssignStatement.cs
- ExchangeUtilities.cs
- StructuralCache.cs
- ParameterReplacerVisitor.cs
- StorageInfo.cs
- SymbolTable.cs
- SqlDataSourceRefreshSchemaForm.cs
- RectAnimationBase.cs
- HyperLinkDesigner.cs
- HwndSource.cs
- BCryptNative.cs
- NotFiniteNumberException.cs
- ExtensibleClassFactory.cs
- DataColumnMapping.cs
- XmlTextEncoder.cs
- HttpGetProtocolReflector.cs
- ConnectionStringsExpressionBuilder.cs
- DataGridState.cs
- ChangeBlockUndoRecord.cs
- Typography.cs
- HttpServerVarsCollection.cs
- XmlUtf8RawTextWriter.cs
- SerializationStore.cs
- FacetValueContainer.cs
- PriorityBindingExpression.cs
- LayoutInformation.cs
- TextTreeRootTextBlock.cs
- SafeNativeMethods.cs
- Rotation3DAnimation.cs
- DesignerEventService.cs
- ScrollPattern.cs
- ItemsPresenter.cs
- AppDomainFactory.cs
- ToolTipAutomationPeer.cs
- AppDomainCompilerProxy.cs
- QuadraticBezierSegment.cs
- FormConverter.cs
- RtfNavigator.cs
- SynchronizationLockException.cs
- AuthenticationModuleElementCollection.cs
- RbTree.cs
- CompilerTypeWithParams.cs
- DataSet.cs
- PolicyDesigner.cs
- Int64KeyFrameCollection.cs
- RightsManagementEncryptionTransform.cs
- UniqueCodeIdentifierScope.cs
- NameTable.cs
- RoleManagerSection.cs
- XhtmlConformanceSection.cs
- DeviceContexts.cs
- SortedList.cs
- DataObjectEventArgs.cs
- PointAnimationClockResource.cs
- ShapingWorkspace.cs
- ClosureBinding.cs
- TriggerAction.cs
- AliasGenerator.cs
- IDQuery.cs
- LassoHelper.cs
- ToolStripDesigner.cs
- MergeFailedEvent.cs
- TypeUnloadedException.cs
- CollectionViewSource.cs
- basenumberconverter.cs
- ZipIOExtraField.cs
- CollectionChangeEventArgs.cs
- PageCatalogPart.cs
- dbdatarecord.cs
- QueryStatement.cs
- DeploymentSection.cs
- InternalConfigHost.cs
- UserControlBuildProvider.cs
- CodeGenerator.cs
- UdpDiscoveryEndpointProvider.cs
- SimpleBitVector32.cs
- XD.cs
- FillBehavior.cs
- PropertyToken.cs
- DataService.cs
- ParserStreamGeometryContext.cs
- PtsHost.cs
- ComboBox.cs
- UIElementParaClient.cs
- HtmlHistory.cs
- RegexCompiler.cs
- WmpBitmapDecoder.cs
- DbConnectionPoolIdentity.cs
- ApplicationActivator.cs
- MimeReflector.cs
- GridViewRow.cs
- ClearTypeHintValidation.cs
- TableLayoutStyleCollection.cs
- SecuritySessionSecurityTokenAuthenticator.cs
- UnwrappedTypesXmlSerializerManager.cs
- SyndicationFeed.cs
- DataControlImageButton.cs
- MetadataStore.cs
- KeyValueSerializer.cs
- OrderByQueryOptionExpression.cs