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
- DirectoryInfo.cs
- CaseInsensitiveHashCodeProvider.cs
- TCEAdapterGenerator.cs
- IfJoinedCondition.cs
- EditorAttribute.cs
- sortedlist.cs
- ConditionChanges.cs
- DockPattern.cs
- SelectingProviderEventArgs.cs
- MSAAWinEventWrap.cs
- Vector3DAnimation.cs
- TiffBitmapEncoder.cs
- ReflectionUtil.cs
- XmlTextAttribute.cs
- OleDbErrorCollection.cs
- RefreshPropertiesAttribute.cs
- Timer.cs
- SqlFlattener.cs
- StoryFragments.cs
- TemplateBamlRecordReader.cs
- BaseDataList.cs
- ImportOptions.cs
- ImageKeyConverter.cs
- ExecutionContext.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Pointer.cs
- AddInAttribute.cs
- SingleTagSectionHandler.cs
- HttpWriter.cs
- WebUtil.cs
- Int32CAMarshaler.cs
- Errors.cs
- DbParameterCollectionHelper.cs
- ParserExtension.cs
- UnknownWrapper.cs
- DataGridHelper.cs
- Button.cs
- DecoderExceptionFallback.cs
- MissingMethodException.cs
- DataObjectPastingEventArgs.cs
- ContextDataSource.cs
- RadioButtonAutomationPeer.cs
- QilTypeChecker.cs
- KeyNotFoundException.cs
- SmiTypedGetterSetter.cs
- DataGridViewSelectedColumnCollection.cs
- ProviderMetadata.cs
- TextServicesProperty.cs
- updatecommandorderer.cs
- InputElement.cs
- LinkTarget.cs
- ActivityBuilder.cs
- DesignerTransaction.cs
- TableLayoutStyleCollection.cs
- TagNameToTypeMapper.cs
- SiteMapDataSourceView.cs
- XmlSchemaValidationException.cs
- ThreadAbortException.cs
- PLINQETWProvider.cs
- ActiveXHost.cs
- CapabilitiesRule.cs
- RelationshipNavigation.cs
- XmlAttributes.cs
- WorkflowViewManager.cs
- AttributeQuery.cs
- WpfGeneratedKnownTypes.cs
- TriggerActionCollection.cs
- Base64WriteStateInfo.cs
- GACIdentityPermission.cs
- PassportAuthentication.cs
- IdnMapping.cs
- GroupPartitionExpr.cs
- Form.cs
- SHA1Managed.cs
- BaseDataListDesigner.cs
- AutomationPatternInfo.cs
- DrawingCollection.cs
- CodeTypeReference.cs
- RequestTimeoutManager.cs
- ConfigUtil.cs
- PathData.cs
- Utils.cs
- SystemIPInterfaceProperties.cs
- OleDbStruct.cs
- MaterialGroup.cs
- MarshalByRefObject.cs
- ServiceOperationParameter.cs
- NetSectionGroup.cs
- ModuleBuilderData.cs
- ColorAnimationBase.cs
- TdsParserSessionPool.cs
- DataGridViewCellContextMenuStripNeededEventArgs.cs
- HtmlElementErrorEventArgs.cs
- CodeGroup.cs
- AutomationFocusChangedEventArgs.cs
- Mapping.cs
- Clock.cs
- SortExpressionBuilder.cs
- UrlAuthorizationModule.cs
- EventToken.cs