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
- StreamWriter.cs
- InvokeMethodActivity.cs
- DiscreteKeyFrames.cs
- TextCharacters.cs
- HttpWebRequest.cs
- GraphicsContext.cs
- MetabaseSettings.cs
- ScrollData.cs
- SettingsSection.cs
- odbcmetadatacolumnnames.cs
- BinaryReader.cs
- CodeCatchClauseCollection.cs
- PocoPropertyAccessorStrategy.cs
- WebPartDescriptionCollection.cs
- RelationshipConstraintValidator.cs
- EncryptedXml.cs
- XmlDeclaration.cs
- SpecialNameAttribute.cs
- DataSourceXmlSubItemAttribute.cs
- DataGridBoolColumn.cs
- TemplateColumn.cs
- Region.cs
- ConnectionPoolManager.cs
- HttpContext.cs
- _NTAuthentication.cs
- AsyncSerializedWorker.cs
- DataGridViewRowsAddedEventArgs.cs
- ProcessHostMapPath.cs
- SHA256Managed.cs
- SingleTagSectionHandler.cs
- DataTableCollection.cs
- ToolZone.cs
- DrawingBrush.cs
- ExpressionParser.cs
- DoubleLinkListEnumerator.cs
- HtmlInputCheckBox.cs
- VariableAction.cs
- WsiProfilesElementCollection.cs
- DataListCommandEventArgs.cs
- AsymmetricCryptoHandle.cs
- ConfigXmlWhitespace.cs
- PathSegment.cs
- CheckStoreFileValidityRequest.cs
- ObjectSecurity.cs
- UndoEngine.cs
- SchemaNotation.cs
- EncoderBestFitFallback.cs
- ProtectedConfiguration.cs
- While.cs
- WebPartActionVerb.cs
- WebSysDefaultValueAttribute.cs
- DeflateEmulationStream.cs
- safemediahandle.cs
- Knowncolors.cs
- MailHeaderInfo.cs
- MultipartContentParser.cs
- WebPartChrome.cs
- RuleSetReference.cs
- FixedTextView.cs
- ParallelDesigner.xaml.cs
- AdRotator.cs
- Fault.cs
- DataSourceDescriptorCollection.cs
- OrderedDictionary.cs
- DataGridItemEventArgs.cs
- RuntimeCompatibilityAttribute.cs
- AttributeParameterInfo.cs
- ScriptingAuthenticationServiceSection.cs
- ResXFileRef.cs
- StrongNameKeyPair.cs
- OracleCommandSet.cs
- AQNBuilder.cs
- UInt64.cs
- TrustLevel.cs
- ToolStripKeyboardHandlingService.cs
- WindowsIdentity.cs
- StrongNameIdentityPermission.cs
- Model3DGroup.cs
- StringOutput.cs
- PropertyDescriptorCollection.cs
- ProxyManager.cs
- URL.cs
- DecoderBestFitFallback.cs
- RoleService.cs
- dtdvalidator.cs
- ToolStripDropTargetManager.cs
- FunctionImportElement.cs
- Simplifier.cs
- TCEAdapterGenerator.cs
- DESCryptoServiceProvider.cs
- DataViewManager.cs
- ConstructorBuilder.cs
- TextTreeUndoUnit.cs
- SQLString.cs
- SamlAuthenticationStatement.cs
- SizeF.cs
- Interlocked.cs
- ProtocolsSection.cs
- PrePrepareMethodAttribute.cs
- Drawing.cs