Code:
                         / 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Data / System / Data / Odbc / OdbcEnvironmentHandle.cs / 1305376 / OdbcEnvironmentHandle.cs
                        
                        
                            //------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
//  
// [....]  
// [....] 
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics; 
using System.Globalization;
using System.Runtime.InteropServices; 
using System.Security; 
using System.Security.Permissions;
using System.Text; 
using System.Threading;
using System.Runtime.Versioning;
namespace System.Data.Odbc { 
    sealed internal class OdbcEnvironmentHandle : OdbcHandle { 
 
        // SxS: this method uses SQLSetEnvAttr to setup ODBC environment handle settings. Environment handle is safe in SxS.
        [ResourceExposure(ResourceScope.None)] 
        [ResourceConsumption(ResourceScope.Process, ResourceScope.Process)]
        internal OdbcEnvironmentHandle() : base(ODBC32.SQL_HANDLE.ENV, null) {
            ODBC32.RetCode retcode;
 
            //Set the expected driver manager version
            // 
            retcode = UnsafeNativeMethods.SQLSetEnvAttr( 
                this,
                ODBC32.SQL_ATTR.ODBC_VERSION, 
                ODBC32.SQL_OV_ODBC3,
                ODBC32.SQL_IS.INTEGER);
            // ignore retcode
 
            //Turn on connection pooling
            //Note: the env handle controls pooling.  Only those connections created under that 
            //handle are pooled.  So we have to keep it alive and not create a new environment 
            //for   every connection.
            // 
            retcode = UnsafeNativeMethods.SQLSetEnvAttr(
                this,
                ODBC32.SQL_ATTR.CONNECTION_POOLING,
                ODBC32.SQL_CP_ONE_PER_HENV, 
                ODBC32.SQL_IS.INTEGER);
 
            switch(retcode) { 
            case ODBC32.RetCode.SUCCESS:
            case ODBC32.RetCode.SUCCESS_WITH_INFO: 
                break;
            default:
                Dispose();
                throw ODBC.CantEnableConnectionpooling(retcode); 
            }
        } 
    } 
}
 
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//------------------------------------------------------------------------------ 
// 
//      Copyright (c) Microsoft Corporation.  All rights reserved.
//  
// [....]  
// [....] 
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.ComponentModel;
using System.Data;
using System.Data.Common;
using System.Diagnostics; 
using System.Globalization;
using System.Runtime.InteropServices; 
using System.Security; 
using System.Security.Permissions;
using System.Text; 
using System.Threading;
using System.Runtime.Versioning;
namespace System.Data.Odbc { 
    sealed internal class OdbcEnvironmentHandle : OdbcHandle { 
 
        // SxS: this method uses SQLSetEnvAttr to setup ODBC environment handle settings. Environment handle is safe in SxS.
        [ResourceExposure(ResourceScope.None)] 
        [ResourceConsumption(ResourceScope.Process, ResourceScope.Process)]
        internal OdbcEnvironmentHandle() : base(ODBC32.SQL_HANDLE.ENV, null) {
            ODBC32.RetCode retcode;
 
            //Set the expected driver manager version
            // 
            retcode = UnsafeNativeMethods.SQLSetEnvAttr( 
                this,
                ODBC32.SQL_ATTR.ODBC_VERSION, 
                ODBC32.SQL_OV_ODBC3,
                ODBC32.SQL_IS.INTEGER);
            // ignore retcode
 
            //Turn on connection pooling
            //Note: the env handle controls pooling.  Only those connections created under that 
            //handle are pooled.  So we have to keep it alive and not create a new environment 
            //for   every connection.
            // 
            retcode = UnsafeNativeMethods.SQLSetEnvAttr(
                this,
                ODBC32.SQL_ATTR.CONNECTION_POOLING,
                ODBC32.SQL_CP_ONE_PER_HENV, 
                ODBC32.SQL_IS.INTEGER);
 
            switch(retcode) { 
            case ODBC32.RetCode.SUCCESS:
            case ODBC32.RetCode.SUCCESS_WITH_INFO: 
                break;
            default:
                Dispose();
                throw ODBC.CantEnableConnectionpooling(retcode); 
            }
        } 
    } 
}
 
// 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
- RawAppCommandInputReport.cs
- QueryCacheKey.cs
- DefaultEvaluationContext.cs
- RelatedImageListAttribute.cs
- HttpModuleCollection.cs
- SqlDataSourceQueryEditorForm.cs
- BufferBuilder.cs
- CharacterMetricsDictionary.cs
- SecurityDocument.cs
- TagPrefixInfo.cs
- DataError.cs
- DataTableReaderListener.cs
- FatalException.cs
- WindowsAuthenticationEventArgs.cs
- DomNameTable.cs
- ValidatorUtils.cs
- PolygonHotSpot.cs
- MetafileHeader.cs
- FontSizeConverter.cs
- HtmlElementCollection.cs
- DecimalAnimationBase.cs
- SourceLineInfo.cs
- FontConverter.cs
- WebPartVerb.cs
- NextPreviousPagerField.cs
- RecognizedWordUnit.cs
- FileReservationCollection.cs
- Matrix.cs
- ChannelEndpointElementCollection.cs
- Rect3DValueSerializer.cs
- XmlReflectionMember.cs
- PageContent.cs
- BufferedGraphicsContext.cs
- ComPlusTypeLoader.cs
- DataContractSerializerServiceBehavior.cs
- TextTreeRootNode.cs
- ConnectionPointCookie.cs
- SelectionChangedEventArgs.cs
- TemplatedControlDesigner.cs
- DispatchWrapper.cs
- GenericFlowSwitchHelper.cs
- PathGeometry.cs
- SqlResolver.cs
- HtmlInputHidden.cs
- ListenDesigner.cs
- VariableQuery.cs
- DependencyObjectPropertyDescriptor.cs
- CommandField.cs
- WebException.cs
- SplitterPanel.cs
- EncryptedKey.cs
- FixedSOMPageElement.cs
- AssemblyResourceLoader.cs
- QilUnary.cs
- InvokeAction.cs
- ErrorWrapper.cs
- WmpBitmapDecoder.cs
- SamlSubjectStatement.cs
- DataRecordInternal.cs
- WebUtility.cs
- DbReferenceCollection.cs
- SiteMapDataSource.cs
- MultiView.cs
- SignatureDescription.cs
- ProjectionCamera.cs
- DBParameter.cs
- Line.cs
- PeerMessageDispatcher.cs
- BooleanFunctions.cs
- _ListenerAsyncResult.cs
- WebBrowserEvent.cs
- FamilyMapCollection.cs
- RequestTimeoutManager.cs
- InputEventArgs.cs
- TextLineBreak.cs
- ClientTarget.cs
- NetCodeGroup.cs
- RefreshPropertiesAttribute.cs
- StandardToolWindows.cs
- Point4D.cs
- BeginEvent.cs
- DataTemplateSelector.cs
- LockedActivityGlyph.cs
- DataColumnPropertyDescriptor.cs
- PageHandlerFactory.cs
- TrackingQueryElement.cs
- HttpModule.cs
- OlePropertyStructs.cs
- XsdDateTime.cs
- Relationship.cs
- ConsoleTraceListener.cs
- TextHidden.cs
- ConfigXmlDocument.cs
- PtsHelper.cs
- NamespaceList.cs
- RedirectionProxy.cs
- CFGGrammar.cs
- MarkupObject.cs
- DataGridViewHitTestInfo.cs
- PieceNameHelper.cs