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
- DateTimeOffsetAdapter.cs
- SegmentInfo.cs
- DateTimeFormat.cs
- followingsibling.cs
- DoubleStorage.cs
- VirtualPathProvider.cs
- RoleManagerEventArgs.cs
- ShimAsPublicXamlType.cs
- EvidenceBase.cs
- ReachFixedPageSerializerAsync.cs
- RouteItem.cs
- SqlFacetAttribute.cs
- StylusSystemGestureEventArgs.cs
- storepermission.cs
- RevocationPoint.cs
- ColorContext.cs
- FactoryRecord.cs
- ReadOnlyCollectionBase.cs
- OpenTypeLayout.cs
- DivideByZeroException.cs
- TreeNodeConverter.cs
- ObjectListItem.cs
- bidPrivateBase.cs
- DataSourceXmlTextReader.cs
- SafeNativeMethods.cs
- DebugView.cs
- ProfileManager.cs
- PerformanceCounterCategory.cs
- ConfigurationConverterBase.cs
- InputLanguageEventArgs.cs
- ReadOnlyNameValueCollection.cs
- DefaultMemberAttribute.cs
- CodeDirectoryCompiler.cs
- PersonalizablePropertyEntry.cs
- DependencyPropertyValueSerializer.cs
- CollectionDataContractAttribute.cs
- WebPartTransformerAttribute.cs
- ProtocolsConfigurationHandler.cs
- TimeSpanStorage.cs
- ObjectParameter.cs
- CommandHelpers.cs
- LambdaCompiler.Unary.cs
- Binding.cs
- mediapermission.cs
- WebPartUtil.cs
- ControlBuilder.cs
- _Semaphore.cs
- SessionStateModule.cs
- HwndKeyboardInputProvider.cs
- TextDecorationCollectionConverter.cs
- OuterGlowBitmapEffect.cs
- UnsafePeerToPeerMethods.cs
- KeysConverter.cs
- SqlClientWrapperSmiStream.cs
- SQLConvert.cs
- Collection.cs
- SchemaNotation.cs
- AbstractDataSvcMapFileLoader.cs
- DBConnectionString.cs
- BooleanProjectedSlot.cs
- WebPartVerbsEventArgs.cs
- RuleElement.cs
- OdbcError.cs
- SortDescriptionCollection.cs
- SqlDependencyUtils.cs
- DataRecordObjectView.cs
- BinaryMethodMessage.cs
- QuaternionRotation3D.cs
- ReverseComparer.cs
- AxisAngleRotation3D.cs
- ScalarConstant.cs
- GenericIdentity.cs
- DataGridViewControlCollection.cs
- GridViewColumnHeader.cs
- EventKeyword.cs
- VectorCollectionConverter.cs
- DataGridComboBoxColumn.cs
- InlineObject.cs
- BackgroundWorker.cs
- KeyMatchBuilder.cs
- ChangeNode.cs
- handlecollector.cs
- XmlDataLoader.cs
- Rights.cs
- Zone.cs
- XmlDocumentViewSchema.cs
- GZipDecoder.cs
- CalendarAutomationPeer.cs
- ItemPager.cs
- DesignerActionPanel.cs
- KeyValuePair.cs
- Trigger.cs
- sqlmetadatafactory.cs
- SuppressMessageAttribute.cs
- Predicate.cs
- XmlSchemaExternal.cs
- BaseValidator.cs
- NegotiationTokenProvider.cs
- HtmlFormWrapper.cs
- DelegatingConfigHost.cs