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
- SoapCodeExporter.cs
- AxParameterData.cs
- rsa.cs
- RouteValueDictionary.cs
- FileBasedResourceGroveler.cs
- CheckBoxPopupAdapter.cs
- FormViewModeEventArgs.cs
- DataBoundControlHelper.cs
- BaseTemplateCodeDomTreeGenerator.cs
- RequestChannel.cs
- SqlFileStream.cs
- WebReferencesBuildProvider.cs
- WaitHandleCannotBeOpenedException.cs
- DataGridViewColumnTypePicker.cs
- SystemUdpStatistics.cs
- SettingsSection.cs
- Simplifier.cs
- OleDbPropertySetGuid.cs
- FloaterBaseParaClient.cs
- HostAdapter.cs
- MissingFieldException.cs
- XmlWhitespace.cs
- PermissionAttributes.cs
- TypeTypeConverter.cs
- PersonalizationAdministration.cs
- CompiledRegexRunner.cs
- NativeCppClassAttribute.cs
- EdmType.cs
- HostingEnvironmentSection.cs
- VsPropertyGrid.cs
- DesignerTransactionCloseEvent.cs
- SqlProviderManifest.cs
- CachingHintValidation.cs
- ProxyHelper.cs
- UnsafeNativeMethods.cs
- DataGridColumnHeaderCollection.cs
- WindowsStartMenu.cs
- DataBindEngine.cs
- WebBrowserPermission.cs
- JsonByteArrayDataContract.cs
- WebHttpBindingElement.cs
- DecoderExceptionFallback.cs
- XmlDocumentType.cs
- PermissionSet.cs
- DataTableClearEvent.cs
- WmlObjectListAdapter.cs
- SQLDecimalStorage.cs
- CqlParser.cs
- XmlNavigatorStack.cs
- WinOEToolBoxItem.cs
- HttpPostServerProtocol.cs
- VScrollProperties.cs
- StoreContentChangedEventArgs.cs
- XsltOutput.cs
- JapaneseLunisolarCalendar.cs
- SqlRowUpdatingEvent.cs
- GroupBoxRenderer.cs
- ConvertEvent.cs
- coordinatorscratchpad.cs
- Pkcs9Attribute.cs
- UnsafeNativeMethods.cs
- UIElement3D.cs
- OleCmdHelper.cs
- CommandConverter.cs
- GatewayDefinition.cs
- LicenseProviderAttribute.cs
- ToolboxItemSnapLineBehavior.cs
- MsmqOutputChannel.cs
- SizeLimitedCache.cs
- Stroke.cs
- EmptyTextWriter.cs
- BitmapMetadata.cs
- AssemblyBuilderData.cs
- ProcessHostConfigUtils.cs
- CodeBlockBuilder.cs
- TextFindEngine.cs
- ButtonPopupAdapter.cs
- PathParser.cs
- ReadOnlyDictionary.cs
- EventRouteFactory.cs
- SerializationInfoEnumerator.cs
- ModuleBuilderData.cs
- ListBoxItemAutomationPeer.cs
- TargetPerspective.cs
- FixedHyperLink.cs
- SchemaComplexType.cs
- OperationContextScope.cs
- ActivationServices.cs
- ProcessHostMapPath.cs
- MetadataProperty.cs
- UncommonField.cs
- BuiltInExpr.cs
- TabPanel.cs
- Win32Exception.cs
- DefaultAsyncDataDispatcher.cs
- TransactionInformation.cs
- ExtensionDataReader.cs
- SimpleHandlerBuildProvider.cs
- URLEditor.cs
- Converter.cs