Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / 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
- DesigntimeLicenseContext.cs
- XmlnsDictionary.cs
- WorkflowWebService.cs
- CorrelationTokenInvalidatedHandler.cs
- MessageVersion.cs
- MsmqIntegrationInputMessage.cs
- DataGridViewBindingCompleteEventArgs.cs
- TextTreeRootTextBlock.cs
- VerticalAlignConverter.cs
- ProcessThreadCollection.cs
- XmlDataFileEditor.cs
- AssemblyBuilder.cs
- EndpointAddress.cs
- HwndPanningFeedback.cs
- CustomErrorsSection.cs
- EmptyReadOnlyDictionaryInternal.cs
- PowerStatus.cs
- ExceptionRoutedEventArgs.cs
- Version.cs
- MultitargetingHelpers.cs
- _LazyAsyncResult.cs
- WebPartDisplayModeCancelEventArgs.cs
- MaterialGroup.cs
- ImpersonateTokenRef.cs
- CodePropertyReferenceExpression.cs
- RestClientProxyHandler.cs
- SafeRightsManagementSessionHandle.cs
- FocusWithinProperty.cs
- WhiteSpaceTrimStringConverter.cs
- Stroke2.cs
- LineMetrics.cs
- CardSpacePolicyElement.cs
- DisplayNameAttribute.cs
- DurableInstanceProvider.cs
- DecimalKeyFrameCollection.cs
- ErrorWebPart.cs
- AppSettingsExpressionBuilder.cs
- ToolStripDropDownButton.cs
- ApplicationGesture.cs
- FontStretchConverter.cs
- FlowDocumentPage.cs
- JavaScriptObjectDeserializer.cs
- WindowsListViewItemCheckBox.cs
- QueryOperationResponseOfT.cs
- ComplexType.cs
- UrlUtility.cs
- QueryReaderSettings.cs
- IgnoreFlushAndCloseStream.cs
- RangeValidator.cs
- XmlQueryRuntime.cs
- DataRelation.cs
- SqlNode.cs
- HttpCapabilitiesEvaluator.cs
- Panel.cs
- ToolStripRendererSwitcher.cs
- RectangleConverter.cs
- nulltextnavigator.cs
- AnnotationResource.cs
- BinHexDecoder.cs
- ValueExpressions.cs
- HttpAsyncResult.cs
- StrokeFIndices.cs
- DataGridViewTopLeftHeaderCell.cs
- SafeRightsManagementSessionHandle.cs
- SystemIPGlobalProperties.cs
- ContainerControlDesigner.cs
- HttpCapabilitiesSectionHandler.cs
- ProfileSettings.cs
- EncoderBestFitFallback.cs
- TimeSpanValidatorAttribute.cs
- MouseGestureValueSerializer.cs
- WebPartConnectionsCancelEventArgs.cs
- ConnectionPoint.cs
- OutputCacheSettings.cs
- SafeSecurityHandles.cs
- EntitySetBase.cs
- LookupBindingPropertiesAttribute.cs
- LambdaCompiler.Binary.cs
- PathData.cs
- EventProvider.cs
- InvokeProviderWrapper.cs
- SqlProvider.cs
- AnimatedTypeHelpers.cs
- GridItem.cs
- SpStreamWrapper.cs
- AnnotationResourceChangedEventArgs.cs
- DeferrableContentConverter.cs
- HealthMonitoringSectionHelper.cs
- InputLanguageManager.cs
- OLEDB_Enum.cs
- RegexBoyerMoore.cs
- TextElementEditingBehaviorAttribute.cs
- PageParser.cs
- BindToObject.cs
- RequestCachePolicy.cs
- GlobalProxySelection.cs
- MultiSelector.cs
- FileUtil.cs
- IISUnsafeMethods.cs
- XmlWriterSettings.cs