Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / whidbey / netfxsp / ndp / fx / src / DataOracleClient / System / Data / OracleClient / TempEnvironment.cs / 1 / TempEnvironment.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Data.OracleClient { using System; using System.Diagnostics; using System.Security; using System.Security.Permissions; //--------------------------------------------------------------------- // TempEnvironment // // Temporary Environment, used to get temporary handles so we don't // have to pass the environment handle everywhere. // sealed internal class TempEnvironment { static private OciEnvironmentHandle environmentHandle; static private OciErrorHandle availableErrorHandle; // static private volatile bool isInitialized; static private object locked = new object(); private TempEnvironment() { } static void Initialize() { lock (locked) { if (!isInitialized) { bool unicode = false; OCI.MODE environmentMode = (OCI.MODE.OCI_THREADED | OCI.MODE.OCI_OBJECT); // NOTE: cannot be NO_MUTEX because we might be multi-threaded. OCI.DetermineClientVersion(); //1 #if NEVER if (OCI.ClientVersionAtLeastOracle9i) { unicode = true; environmentMode |= OCI.MODE.OCI_UTF16; } #endif //0 environmentHandle = new OciEnvironmentHandle(environmentMode, unicode); availableErrorHandle = new OciErrorHandle(environmentHandle); isInitialized = true; } } } static internal OciErrorHandle GetErrorHandle() { OracleConnection.VerifyExecutePermission(); if (!isInitialized) { Initialize(); } return availableErrorHandle; // } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //[....] //----------------------------------------------------------------------------- namespace System.Data.OracleClient { using System; using System.Diagnostics; using System.Security; using System.Security.Permissions; //--------------------------------------------------------------------- // TempEnvironment // // Temporary Environment, used to get temporary handles so we don't // have to pass the environment handle everywhere. // sealed internal class TempEnvironment { static private OciEnvironmentHandle environmentHandle; static private OciErrorHandle availableErrorHandle; // static private volatile bool isInitialized; static private object locked = new object(); private TempEnvironment() { } static void Initialize() { lock (locked) { if (!isInitialized) { bool unicode = false; OCI.MODE environmentMode = (OCI.MODE.OCI_THREADED | OCI.MODE.OCI_OBJECT); // NOTE: cannot be NO_MUTEX because we might be multi-threaded. OCI.DetermineClientVersion(); //1 #if NEVER if (OCI.ClientVersionAtLeastOracle9i) { unicode = true; environmentMode |= OCI.MODE.OCI_UTF16; } #endif //0 environmentHandle = new OciEnvironmentHandle(environmentMode, unicode); availableErrorHandle = new OciErrorHandle(environmentHandle); isInitialized = true; } } } static internal OciErrorHandle GetErrorHandle() { OracleConnection.VerifyExecutePermission(); if (!isInitialized) { Initialize(); } return availableErrorHandle; // } } } // 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
- DifferencingCollection.cs
- HitTestDrawingContextWalker.cs
- TextParagraphCache.cs
- CompilationUtil.cs
- TemplateBamlTreeBuilder.cs
- TypeHelper.cs
- DockingAttribute.cs
- TargetParameterCountException.cs
- WindowCollection.cs
- LiteralTextContainerControlBuilder.cs
- RestHandler.cs
- ChameleonKey.cs
- GlyphManager.cs
- PrimitiveXmlSerializers.cs
- ChannelSinkStacks.cs
- TransactedReceiveScope.cs
- RepeatInfo.cs
- AnnotationMap.cs
- FloaterParaClient.cs
- ToolStripItemClickedEventArgs.cs
- TripleDESCryptoServiceProvider.cs
- CssClassPropertyAttribute.cs
- sortedlist.cs
- OdbcConnectionString.cs
- CreateParams.cs
- KeyboardEventArgs.cs
- CompilationLock.cs
- X509SecurityTokenAuthenticator.cs
- ZipIOLocalFileDataDescriptor.cs
- DataStreams.cs
- TableDetailsCollection.cs
- EventLogSession.cs
- XmlSchemaSimpleTypeList.cs
- ADMembershipUser.cs
- GeometryCollection.cs
- XmlEncoding.cs
- XmlSchemaSimpleType.cs
- XPathDocumentBuilder.cs
- Window.cs
- StaticTextPointer.cs
- Attribute.cs
- InternalConfigHost.cs
- Converter.cs
- DataGridViewRowErrorTextNeededEventArgs.cs
- regiisutil.cs
- StringCollection.cs
- DatatypeImplementation.cs
- ApplyTemplatesAction.cs
- WebUtil.cs
- SerializerWriterEventHandlers.cs
- StandardToolWindows.cs
- Vector3DAnimationBase.cs
- XmlDomTextWriter.cs
- mactripleDES.cs
- ProtocolsConfigurationEntry.cs
- Transform3DGroup.cs
- bidPrivateBase.cs
- FormatterServices.cs
- Lookup.cs
- FieldAccessException.cs
- ComponentDispatcher.cs
- DataException.cs
- ReachUIElementCollectionSerializerAsync.cs
- Int16KeyFrameCollection.cs
- XmlNamespaceMapping.cs
- SemanticResolver.cs
- Rect.cs
- SafeProcessHandle.cs
- ProtocolsConfigurationEntry.cs
- DragEvent.cs
- Win32Exception.cs
- ListMarkerSourceInfo.cs
- XamlPointCollectionSerializer.cs
- ChildTable.cs
- FixedNode.cs
- AssemblyBuilder.cs
- Scalars.cs
- LicenseException.cs
- TracedNativeMethods.cs
- SmiConnection.cs
- XmlSchemaSimpleContentExtension.cs
- GrammarBuilder.cs
- StrokeNodeEnumerator.cs
- ZipArchive.cs
- RegexCapture.cs
- FrameworkPropertyMetadata.cs
- ConstraintCollection.cs
- PerfService.cs
- InternalMappingException.cs
- DetailsViewRowCollection.cs
- TreeNodeSelectionProcessor.cs
- Walker.cs
- ProtocolViolationException.cs
- DataGridViewAutoSizeColumnModeEventArgs.cs
- AspNetHostingPermission.cs
- ComboBoxAutomationPeer.cs
- ActivityExecutor.cs
- HttpCapabilitiesEvaluator.cs
- AppDomainAttributes.cs
- DataGridAutomationPeer.cs