Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironment.cs / 1 / OdbcEnvironment.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //[....] //----------------------------------------------------------------------------- using System; using System.Data; using System.Data.Common; using System.Threading; namespace System.Data.Odbc { sealed internal class OdbcEnvironment { static private object _globalEnvironmentHandle; static private object _globalEnvironmentHandleLock = new object(); private OdbcEnvironment () {} // default const. static internal OdbcEnvironmentHandle GetGlobalEnvironmentHandle() { OdbcEnvironmentHandle globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { ADP.CheckVersionMDAC(true); lock(_globalEnvironmentHandleLock) { globalEnvironmentHandle = _globalEnvironmentHandle as OdbcEnvironmentHandle; if(null == globalEnvironmentHandle) { globalEnvironmentHandle = new OdbcEnvironmentHandle(); _globalEnvironmentHandle = globalEnvironmentHandle; } } } return globalEnvironmentHandle; } static internal void ReleaseObjectPool() { object globalEnvironmentHandle = Interlocked.Exchange(ref _globalEnvironmentHandle, null); if(null != globalEnvironmentHandle) { (globalEnvironmentHandle as OdbcEnvironmentHandle).Dispose(); // internally refcounted so will happen correctly } } } } // 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
- SqlOuterApplyReducer.cs
- ColumnMap.cs
- ImportOptions.cs
- ColorKeyFrameCollection.cs
- XmlSchemaGroupRef.cs
- AsyncPostBackErrorEventArgs.cs
- Config.cs
- MatrixIndependentAnimationStorage.cs
- XslCompiledTransform.cs
- HandlerWithFactory.cs
- EventLog.cs
- ToolboxItemSnapLineBehavior.cs
- CommittableTransaction.cs
- ITextView.cs
- DesignTimeSiteMapProvider.cs
- GeneralTransform.cs
- BookmarkUndoUnit.cs
- GridViewPageEventArgs.cs
- PointCollectionConverter.cs
- DataSourceBooleanViewSchemaConverter.cs
- SiteMapNode.cs
- PreloadHost.cs
- ControlPaint.cs
- CombinedGeometry.cs
- StylusButtonCollection.cs
- SimpleWebHandlerParser.cs
- SafeSystemMetrics.cs
- WebPermission.cs
- BindingExpressionBase.cs
- XmlObjectSerializerReadContext.cs
- SequenceRangeCollection.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ApplicationProxyInternal.cs
- PointLight.cs
- PrintingPermission.cs
- TagPrefixInfo.cs
- ContentFilePart.cs
- ManageRequest.cs
- EmbossBitmapEffect.cs
- ListViewCommandEventArgs.cs
- TraceProvider.cs
- GradientBrush.cs
- DataGridColumnHeaderAutomationPeer.cs
- _NegoStream.cs
- ResXDataNode.cs
- WizardPanel.cs
- BStrWrapper.cs
- ListBoxChrome.cs
- XmlSchemaException.cs
- Events.cs
- Hex.cs
- mda.cs
- CellLabel.cs
- RegexFCD.cs
- DependencyProperty.cs
- DataTableNewRowEvent.cs
- SessionStateContainer.cs
- Soap.cs
- Atom10ItemFormatter.cs
- EncoderExceptionFallback.cs
- NetNamedPipeSecurityElement.cs
- XsdDuration.cs
- PrinterUnitConvert.cs
- InputLangChangeRequestEvent.cs
- XmlWrappingReader.cs
- TriggerCollection.cs
- DefaultSettingsSection.cs
- SQLBytesStorage.cs
- XmlComment.cs
- SqlGenericUtil.cs
- ConditionalWeakTable.cs
- ActivityXamlServices.cs
- precedingsibling.cs
- SslStreamSecurityBindingElement.cs
- HttpHostedTransportConfiguration.cs
- DurableInstance.cs
- AlternateViewCollection.cs
- WindowsFont.cs
- CriticalFinalizerObject.cs
- TextTreeDeleteContentUndoUnit.cs
- CodeCatchClauseCollection.cs
- NopReturnReader.cs
- TextViewDesigner.cs
- CleanUpVirtualizedItemEventArgs.cs
- XmlIgnoreAttribute.cs
- DbConnectionFactory.cs
- PeerCollaborationPermission.cs
- DebugView.cs
- UrlUtility.cs
- TextElement.cs
- TreeNodeEventArgs.cs
- ToolStripControlHost.cs
- DeleteStoreRequest.cs
- SqlCommandSet.cs
- RuleRefElement.cs
- WebPartTransformerCollection.cs
- SqlUtil.cs
- WebServiceErrorEvent.cs
- SqlCommandSet.cs
- Win32.cs