Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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
- PageCatalogPart.cs
- PeerOutputChannel.cs
- CustomError.cs
- OpenTypeLayoutCache.cs
- PermissionRequestEvidence.cs
- DetailsViewInsertEventArgs.cs
- OdbcUtils.cs
- SystemResourceHost.cs
- EdmTypeAttribute.cs
- ManagementEventWatcher.cs
- EdmConstants.cs
- KeyGestureConverter.cs
- CommonObjectSecurity.cs
- ConfigXmlDocument.cs
- CounterSetInstanceCounterDataSet.cs
- SrgsToken.cs
- SqlConnectionHelper.cs
- GridViewCancelEditEventArgs.cs
- UTF32Encoding.cs
- TextRangeProviderWrapper.cs
- DataFormats.cs
- TracingConnectionListener.cs
- SocketException.cs
- PermissionRequestEvidence.cs
- BuildProvider.cs
- PerformanceCounterCategory.cs
- keycontainerpermission.cs
- ParentUndoUnit.cs
- ProcessHostServerConfig.cs
- ImageAutomationPeer.cs
- TcpSocketManager.cs
- DecodeHelper.cs
- Variant.cs
- RadioButtonRenderer.cs
- HtmlTernaryTree.cs
- SqlCachedBuffer.cs
- TrackingLocation.cs
- ContractMapping.cs
- ColumnCollectionEditor.cs
- ProviderConnectionPoint.cs
- WsdlBuildProvider.cs
- CodeSnippetStatement.cs
- ClientConfigPaths.cs
- AnnotationAdorner.cs
- HttpWrapper.cs
- XpsSerializationManager.cs
- Parameter.cs
- QueryParameter.cs
- DispatcherObject.cs
- FontDifferentiator.cs
- TypeNameConverter.cs
- OleDbDataAdapter.cs
- Pen.cs
- RenderCapability.cs
- RelatedView.cs
- ImportContext.cs
- KerberosRequestorSecurityToken.cs
- ProxySimple.cs
- DbProviderFactory.cs
- EntityDataSourceQueryBuilder.cs
- PropertyItemInternal.cs
- AdapterUtil.cs
- RSAPKCS1KeyExchangeFormatter.cs
- _CommandStream.cs
- IdentityNotMappedException.cs
- ActiveXContainer.cs
- LicenseManager.cs
- ImportContext.cs
- HttpWriter.cs
- String.cs
- BitVector32.cs
- CategoryGridEntry.cs
- ErrorsHelper.cs
- CodeIndexerExpression.cs
- RectAnimationUsingKeyFrames.cs
- MissingMemberException.cs
- StubHelpers.cs
- AdapterDictionary.cs
- DisplayMemberTemplateSelector.cs
- ColorMap.cs
- RubberbandSelector.cs
- UniqueEventHelper.cs
- EventLogPermissionAttribute.cs
- GridViewCancelEditEventArgs.cs
- WebPartManagerInternals.cs
- ExtensionQuery.cs
- MetadataReference.cs
- RuleSetReference.cs
- MsmqSecureHashAlgorithm.cs
- ContentDefinition.cs
- ContextMenu.cs
- ResXDataNode.cs
- XmlTextReader.cs
- InputLanguageProfileNotifySink.cs
- SqlCrossApplyToCrossJoin.cs
- DiagnosticTrace.cs
- ConfigurationValidatorAttribute.cs
- ArgIterator.cs
- DocumentationServerProtocol.cs
- ITextView.cs