SQLSetConnectAttr

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQL Server Native Client ODBC ドライバーは、SQL_ATTR_CONNECTION_TIMEOUTの設定を無視します。

SQL_ATTR_TRANSLATE_LIB も無視されます。他の変換ライブラリの指定はサポートされていません。 SQL Server用の Microsoft ODBC ドライバーを使用するようにアプリケーションを簡単に移植できるようにするために、SQL_ATTR_TRANSLATE_LIBで設定された値は、ドライバー マネージャーのバッファーとの間でコピーされます。

SQL Server Native Client ODBC ドライバーは、反復可能な読み取りトランザクション分離をシリアル化可能として実装します。

SQL Server 2005 (9.x) では、新しいトランザクション分離属性 (SQL_COPT_SS_TXN_ISOLATION) のサポートが導入されました。 SQL_COPT_SS_TXN_ISOLATION を SQL_TXN_SS_SNAPSHOT に設定すると、トランザクションがスナップショット分離レベルで実行されることが報告されます。

Note

SQL_ATTR_TXN_ISOLATION は、SQL_TXN_SS_SNAPSHOT 以外のすべての分離レベルを設定する場合に使用できます。 スナップショット分離を使用する場合は、SQL_COPT_SS_TXN_ISOLATION を使用して SQL_TXN_SS_SNAPSHOT を設定する必要があります。 ただし、スナップショット分離レベルは SQL_ATTR_TXN_ISOLATION または SQL_COPT_SS_TXN_ISOLATION のどちらを使用しても取得することはできます。

ODBC ステートメントの属性を接続属性に昇格すると、予期しない結果が生じることがあります。 結果セットの処理にサーバー カーソルを必要とするステートメント属性は、接続属性に昇格できます。 たとえば、ODBC ステートメント属性 SQL_ATTR_CONCURRENCY に既定値の SQL_CONCUR_READ_ONLY よりも制限の厳しい値を設定すると、ドライバーはその接続で送信されるすべてのステートメントに動的カーソルを使用します。 この接続から送信されるステートメントで ODBC カタログ関数を実行すると、SQL_SUCCESS_WITH_INFO とカーソルの動作が読み取り専用に変更されたことを示す診断レコードが返されます。 この接続で、COMPUTE 句を含む Transact-SQL の SELECT ステートメントを実行すると、ステートメントの実行に失敗します。

SQL Server Native Client ODBC ドライバーでは、sqlncli.h で定義されている ODBC 接続属性に対するドライバー固有の拡張機能が多数サポートされています。 SQL Server Native Client ODBC ドライバーでは、接続前に属性を設定する必要がある場合や、既に設定されている場合は属性を無視する場合があります。 次の表に、その制限事項を示します。

SQL Server の属性 設定タイミング (サーバーへの接続前または接続後)
SQL_COPT_SS_ANSI_NPW 変更前
SQL_COPT_SS_APPLICATION_INTENT 変更前
SQL_COPT_SS_ATTACHDBFILENAME 変更前
SQL_COPT_SS_BCP 変更前
SQL_COPT_SS_BROWSE_CONNECT 変更前
SQL_COPT_SS_BROWSE_SERVER 変更前
SQL_COPT_SS_CONCAT_NULL 変更前
SQL_COPT_SS_CONNECTION_DEAD クリック後
SQL_COPT_SS_ENCRYPT 変更前
SQL_COPT_SS_ENLIST_IN_DTC クリック後
SQL_COPT_SS_ENLIST_IN_XA クリック後
SQL_COPT_SS_FALLBACK_CONNECT 変更前
SQL_COPT_SS_FAILOVER_PARTNER 変更前
SQL_COPT_SS_INTEGRATED_SECURITY 変更前
SQL_COPT_SS_MARS_ENABLED 変更前
SQL_COPT_SS_MULTISUBNET_FAILOVER 変更前
SQL_COPT_SS_OLDPWD 変更前
SQL_COPT_SS_PERF_DATA クリック後
SQL_COPT_SS_PERF_DATA_LOG クリック後
SQL_COPT_SS_PERF_DATA_LOG_NOW クリック後
SQL_COPT_SS_PERF_QUERY クリック後
SQL_COPT_SS_PERF_QUERY_INTERVAL クリック後
SQL_COPT_SS_PERF_QUERY_LOG クリック後
SQL_COPT_SS_PRESERVE_CURSORS 変更前
SQL_COPT_SS_QUOTED_IDENT 接続前/接続後
SQL_COPT_SS_TRANSLATE 接続前/接続後
SQL_COPT_SS_TRUST_SERVER_CERTIFICATE 変更前
SQL_COPT_SS_TXN_ISOLATION 接続前/接続後
SQL_COPT_SS_USE_PROC_FOR_PREP 接続前/接続後
SQL_COPT_SS_USER_DATA 接続前/接続後
SQL_COPT_SS_WARN_ON_CP_ERROR 変更前

同じセッション、データベース、またはSQL Server状態に対して接続前属性と同等の Transact-SQL コマンドを使用すると、予期しない動作が発生する可能性があります。 たとえば、次のように入力します。

SQLSetConnectAttr(SQL_COPT_SS_QUOTED_IDENT, SQL_QI_ON) // turn ON via attribute  
SQLDriverConnect(...);  
SQLExecDirect("SET QUOTED_IDENTIFIER OFF") // turn OFF via Transact-SQL  
SQLSetConnectAttr(SQL_ATTR_CURRENT_CATALOG, ...) // restores to pre-connect attribute value  

SQL_COPT_SS_ANSI_NPW

SQL_COPT_SS_ANSI_NPW 属性は、比較や連結における NULL 値、文字データ型の埋め込み、および警告の処理に対して、ISO 標準の処理を有効または無効にします。 詳細については、「SET ANSI_NULLS」、「SET ANSI_PADDING」、「SET ANSI_WARNINGS」、および「SET CONCAT_NULL_YIELDS_NULL」を参照してください。

説明
SQL_AD_ON 既定値。 接続では、NULL 比較、埋め込み、警告、および NULL 連結に ANSI の既定動作が使用されます。
SQL_AD_OFF 接続では、NULL、文字データ型の埋め込み、警告のSQL Server定義された処理が使用されます。

接続プールを使用する場合は、SQLSetConnectAttr ではなく、接続文字列にSQL_COPT_SS_ANSI_NPWを設定する必要があります。 接続プールを使用している場合、接続が確立された後にこの属性を変更しようとすると、何も通知されずに失敗します。

SQL_COPT_SS_APPLICATION_INTENT

アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 使用できる値は ReadonlyReadWrite です。 次に例を示します。

SQLSetConnectAttr(hdbc, SQL_COPT_SS_APPLICATION_INTENT, TEXT("Readonly"), SQL_NTS)  

既定値は ReadWrite です。 Always On可用性グループ AG のSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリー SQL Server Native Clientサポート」を参照してください。

SQL_COPT_SS_ATTACHDBFILENAME

SQL_COPT_SS_ATTACHDBFILENAME 属性は、アタッチ可能なデータベースのプライマリ ファイルの名前を指定します。 このデータベースがアタッチされ、接続の既定のデータベースとして使用されます。 SQL_COPT_SS_ATTACHDBFILENAMEを使用するには、接続属性SQL_ATTR_CURRENT_CATALOGの値として、または SQLDriverConnect の DATABASE = パラメーターにデータベースの名前を指定する必要があります。 データベースが以前にアタッチされていた場合、SQL Serverは再アタッチされません。

説明
文字列への SQLPOINTER この文字列には、アタッチするデータベースのプライマリ ファイル名を指定します。 ファイル名には、ファイルの完全なパスを含めます。

SQL_COPT_SS_BCP

SQL_COPT_SS_BCP 属性は、接続で一括コピー関数を有効にします。 詳細については、「 一括コピー関数」を参照してください。

説明
SQL_BCP_OFF 既定値。 接続では一括コピー関数を使用できません。
SQL_BCP_ON 接続では一括コピー関数を使用できます。

SQL_COPT_SS_BROWSE_CONNECT

この属性は、 SQLBrowseConnect によって返される結果セットをカスタマイズするために使用されます。 SQL_COPT_SS_BROWSE_CONNECTは、SQL Serverの列挙インスタンスからの追加情報の返しを有効または無効にします。 この詳細情報には、サーバーがクラスター サーバーかどうか、さまざまなインスタンスの名前、およびバージョン番号などが含まれます。

説明
SQL_MORE_INFO_NO 既定値。 サーバーの一覧を返します。
SQL_MORE_INFO_YES SQLBrowseConnect は、サーバー プロパティの拡張文字列を返します。

SQL_COPT_SS_BROWSE_SERVER

この属性は、 SQLBrowseConnect によって返される結果セットをカスタマイズするために使用されます。 SQL_COPT_SS_BROWSE_SERVERは、 SQLBrowseConnect が情報を返すサーバー名を指定します。

説明
computername SQLBrowseConnect は、指定したコンピューター上のSQL Serverのインスタンスの一覧を返します。 サーバー名には、円記号 (\\) を使用しないでください (たとえば、\\MyServer ではなく MyServer を使用する必要があります)。
NULL 既定値。 SQLBrowseConnect は、ドメイン内のすべてのサーバーの情報を返します。

SQL_COPT_SS_CONCAT_NULL

SQL_COPT_SS_CONCAT_NULL 属性は、文字列を連結するときの NULL 処理に対して、ISO 標準の処理を有効または無効にします。 詳細については、「SET CONCAT_NULL_YIELDS_NULL」を参照してください。

説明
SQL_CN_ON 既定値。 接続では、文字列を連結するときの NULL の処理に対して、ISO の既定の動作を使用します。
SQL_CN_OFF 接続では、文字列を連結するときに NULL 値を処理するために、SQL Server定義された動作が使用されます。

SQL_COPT_SS_ENCRYPT

接続の暗号化を制御します。

暗号化にはサーバー上の証明書が使用されます。 接続属性 SQL_COPT_SS_TRUST_SERVER_CERTIFICATE が SQL_TRUST_SERVER_CERTIFICATE_YES に設定されるか、接続文字列に "TrustServerCertificate=yes" が含まれていない限り、この証明書は証明機関によって検証される必要があります。 この両方の条件を満たしている場合、サーバー上に証明書が存在しなければ、そのサーバーによって生成および署名された証明書を使用して、接続を暗号化できます。

説明
SQL_EN_ON 接続が暗号化されます。
SQL_EN_OFF 接続は暗号化されません。 既定値です。

SQL_COPT_SS_ENLIST_IN_DTC

クライアントは、Microsoft 分散トランザクション コーディネーター (MS DTC) OLE DB ITransactionDispenser::BeginTransaction メソッドを呼び出して、MS DTC トランザクションを開始し、トランザクションを表す MS DTC トランザクション オブジェクトを作成します。 その後、アプリケーションは SQLSetConnectAttr を SQL_COPT_SS_ENLIST_IN_DTC オプションと共に呼び出して、トランザクション オブジェクトを ODBC 接続に関連付けます。 関連のあるすべてのデータベース操作は、MS DTC トランザクションで保護されます。 アプリケーションは SQLSetConnectAttr をSQL_DTC_DONEで呼び出して、接続の DTC 関連付けを終了します。

説明
DTC object* SQL Serverにエクスポートするトランザクションを指定する MS DTC OLE トランザクション オブジェクト。
SQL_DTC_DONE トランザクションの末尾を区切ります。

SQL_COPT_SS_ENLIST_IN_XA

XA 準拠トランザクション プロセッサ (TP) を使用して XA トランザクションを開始するには、クライアントは Open Group tx_begin 関数を呼び出します。 その後、アプリケーションは SQLSetConnectAttr を TRUE のSQL_COPT_SS_ENLIST_IN_XA パラメーターで呼び出して、XA トランザクションを ODBC 接続に関連付けます。 関連のあるすべてのデータベース操作は、XA トランザクションで保護されます。 ODBC 接続との XA 関連付けを終了するには、クライアントは、SQL_COPT_SS_ENLIST_IN_XA パラメーター FALSE を指定して SQLSetConnectAttr を呼び出す必要があります。 詳細については、分散トランザクション コーディネーターのマニュアルを参照してください。

SQL_COPT_SS_FALLBACK_CONNECT

この属性は現在サポートされていません。

SQL_COPT_SS_FAILOVER_PARTNER

SQL Serverでデータベース ミラーリングに使用されるフェールオーバー パートナーの名前を指定または取得するために使用され、SQL Serverへの接続が最初に行われる前に設定する必要がある null 終端文字列です。

接続を確立した後、アプリケーションは SQLGetConnectAttr を使用してこの属性に対してクエリを実行して、フェールオーバー パートナーの ID を確認できます。 プライマリ サーバーのフェールオーバー パートナーが存在しないと、この属性は空文字列を返します。 アプリケーションでは最後に判別したバックアップ サーバーをキャッシュできますが、この情報は最初に接続を確立したとき、または接続がリセットされたとき (接続がプールされている場合) にだけ更新されることに注意する必要があります。接続が長期にわたると、この情報は古くなることがあります。

詳細については、「データベース ミラーリングの使用」を参照してください。

SQL_COPT_SS_INTEGRATED_SECURITY

SQL_COPT_SS_INTEGRATED_SECURITY 属性は、サーバー ログインでアクセス違反を検出するために Windows 認証を使用することを強制します。 Windows 認証を使用すると、ドライバーは、SQLConnect、SQLDriverConnect、または SQLBrowseConnect 処理の一部として指定されたユーザー識別子とパスワード値を無視します。

説明
SQL_IS_OFF 既定値。 SQL Server認証は、ログイン時にユーザー識別子とパスワードを検証するために使用されます。
SQL_IS_ON Windows 認証モードは、SQL Serverに対するユーザーのアクセス権を検証するために使用されます。

SQL_COPT_SS_MARS_ENABLED

この属性は、複数のアクティブな結果セット (MARS) を有効または無効にします。 既定では、MARS は無効になっています。 この属性は、SQL Serverへの接続を確立する前に設定する必要があります。 接続SQL Serverが開かれると、MARS は接続の有効期間中も有効または無効のままになります。

説明
SQL_MARS_ENABLED_NO 既定値。 複数のアクティブな結果セット (MARS) を無効にします。
SQL_MARS_ENABLED_YES MARS を有効にします。

MARS の詳細については、「 複数のアクティブな結果セット (MARS) の使用」を参照してください。

SQL_COPT_SS_MULTISUBNET_FAILOVER

アプリケーションが異なるサブネット上のAlways On可用性グループ可用性グループ (AG) に接続している場合、この接続プロパティは、(現在) アクティブなサーバーの検出と接続を高速化するようにSQL Server Native Clientを構成します。 次に例を示します。

SQLSetConnectAttr(hdbc, SQL_COPT_SS_MULTISUBNET_FAILOVER, SQL_IS_ON, SQL_IS_INTEGER)  

Always On可用性グループ AG のSQL Server Native Clientのサポートの詳細については、「高可用性、ディザスター リカバリー SQL Server Native Clientサポート」を参照してください。

説明
SQL_IS_ON SQL Server Native Clientは、フェールオーバーがある場合に再接続を高速化します。
SQL_IS_OFF フェールオーバーがある場合、SQL Server Native Clientは高速な再接続を提供しません。

SQL_COPT_SS_OLDPWD

SQL Server認証のパスワードの有効期限は、SQL Server 2005 (9.x) で導入されました。 クライアントから接続の古いパスワードと新しいパスワードの両方を提供できるようにするために、SQL_COPT_SS_OLDPWD 属性が追加されました。 この属性が設定されている場合、接続文字列には変更された "古いパスワード" が含まれているので、プロバイダーは最初の接続またはそれ以降の接続で接続プールを使用しません。

詳細については、「プログラムによるパスワードの変更」を参照してください。

説明
SQL_COPT_SS_OLD_PASSWORD 古いパスワードを含む文字列への SQLPOINTER。 この値は書き込み専用で、サーバーへの接続を確立する前に設定する必要があります。

SQL_COPT_SS_PERF_DATA

SQL_COPT_SS_PERF_DATA 属性は、パフォーマンス データのログ記録を開始または停止します。 データのログ ファイル名は、データのログ記録を開始する前に設定する必要があります。 詳細については、次の「SQL_COPT_SS_PERF_DATA_LOG」を参照してください。

説明
SQL_PERF_START ドライバーのパフォーマンス データのサンプリングを開始します。
SQL_PERF_STOP パフォーマンス データのサンプリングのカウンターを停止します。

詳細については、「 SQLGetConnectAttr」を参照してください。

SQL_COPT_SS_PERF_DATA_LOG

SQL_COPT_SS_PERF_DATA_LOG 属性は、パフォーマンス データの記録に使用するログ ファイル名を割り当てます。 ログ ファイル名は、アプリケーションのコンパイル方法に応じて、ANSI または Unicode 形式の、NULL で終わる文字列になります。 StringLength 引数はSQL_NTSする必要があります。

SQL_COPT_SS_PERF_DATA_LOG_NOW

SQL_COPT_SS_PERF_DATA_LOG_NOW 属性は、ドライバーに対して、統計ログのエントリをディスクに書き込むように指定します。 StringLength 引数はSQL_NTSする必要があります。

SQL_COPT_SS_PERF_QUERY

SQL_COPT_SS_PERF_QUERY 属性は、実行時間の長いクエリ用のログ記録を開始または停止します。 クエリのログ ファイル名は、ログ記録を開始する前に指定する必要があります。 アプリケーションでは、ログ記録の間隔を設定して "実行時間の長いクエリ" を定義できます。

説明
SQL_PERF_START 実行時間の長いクエリのログ記録を開始します。
SQL_PERF_STOP 実行時間の長いクエリのログ記録を停止します。

詳細については、「 SQLGetConnectAttr」を参照してください。

SQL_COPT_SS_PERF_QUERY_INTERVAL

SQL_COPT_SS_PERF_QUERY_INTERVAL 属性は、クエリのログ記録のしきい値をミリ秒単位で設定します。 指定のしきい値内に解決しないクエリは、実行時間の長いクエリのログ ファイルに記録されます。 クエリのしきい値に上限はありません。 クエリのしきい値に値 0 が設定されている場合、すべてのクエリがログに記録されます。

SQL_COPT_SS_PERF_QUERY_LOG

SQL_COPT_SS_PERF_QUERY_LOG 属性は、実行時間の長いクエリのデータを記録するログ ファイル名を割り当てます。 ログ ファイル名は、アプリケーションのコンパイル方法に応じて、ANSI または Unicode 形式の、NULL で終わる文字列になります。 StringLength 引数は、SQL_NTSするか、文字列の長さをバイト単位で指定する必要があります。

SQL_COPT_SS_PRESERVE_CURSORS

この属性を使用して、トランザクションをコミットまたはロールバックするときに接続でカーソルを保持するかどうかを照会および設定できます。 設定値は、SQL_PC_ON または SQL_PC_OFF のどちらかです。 既定値は SQL_PC_OFF です。 この設定は、 SQLEndTran (または SQLTransact) を呼び出すときに、ドライバーがカーソルを閉じるかどうかを制御します。

説明
SQL_PC_OFF 既定値。 SQLEndTran を使用してトランザクションがコミットまたはロールバックされると、カーソルは閉じられます。
SQL_PC_ON 非同期モードで静的カーソルまたはキーセット カーソルを使用する場合を除き、 SQLEndTran を使用してトランザクションがコミットまたはロールバックされた場合、カーソルは閉じられません。 カーソルのデータ設定が完了していないときにロールバックが行われると、そのカーソルは閉じられます。

SQL_COPT_SS_QUOTED_IDENT

SQL_COPT_SS_QUOTED_IDENT 属性は、その接続で送信される ODBC ステートメントや Transact-SQL ステートメントにおける引用符で囲まれた識別子の使用を有効または無効にします。 引用符で囲まれた識別子を指定することで、SQL Server Native Client ODBC ドライバーは、識別子に空白文字を含む "My Table" などの無効なオブジェクト名を許可します。 詳細については、「SET QUOTED_IDENTIFIER」を参照してください。

説明
SQL_QI_OFF SQL Server接続では、送信された Transact-SQL で引用符で囲まれた識別子を使用できません。
SQL_QI_ON 既定値。 接続では、送信された Transact-SQL で引用符で囲まれた識別子を使用できます。

SQL_COPT_SS_TRANSLATE

SQL_COPT_SS_TRANSLATE 属性を指定すると、MBCS データを交換するときに、ドライバーによってクライアントとサーバーのコード ページ間で文字が変換されます。 属性は、SQL Server charvarchar、および text 列に格納されているデータにのみ影響します。

説明
SQL_XL_OFF ドライバーでは、クライアントとサーバー間で文字データを交換する際に、あるコード ページから別のコード ページに文字が変換されません。
SQL_XL_ON 既定値。 ドライバーでは、クライアントとサーバー間で文字データを交換する際に、あるコード ページから別のコード ページに文字が変換されます。 サーバーにインストールされているコード ページとクライアントで使用されているコード ページが判別され、文字の変換が自動的に構成されます。

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE

SQL_COPT_SS_TRUST_SERVER_CERTIFICATE 属性では、暗号化を使用しているときに、ドライバーによる証明書の検証を有効または無効にできます。 この属性の値は読み書き可能ですが、接続を確立した後に値を設定しても、設定は有効にはなりません。

クライアント アプリケーションでは、接続を開いた後にこの属性をクエリして、実際に使用されている暗号化と検証の設定を判断できます。

説明
SQL_TRUST_SERVER_CERTIFICATE_NO 既定値。 証明書の検証を伴わない暗号化が無効です。
SQL_TRUST_SERVER_CERTIFICATE_YES 証明書の検証を伴わない暗号化が有効です。

SQL_COPT_SS_TXN_ISOLATION

SQL_COPT_SS_TXN_ISOLATIONは、特定のスナップショット分離属性SQL Server設定します。 値がSQL Server固有であるため、SQL_ATTR_TXN_ISOLATIONを使用してスナップショットの分離を設定することはできません。 ただし、この値は、SQL_ATTR_TXN_ISOLATION または SQL_COPT_SS_TXN_ISOLATION のどちらを使用しても取得することはできます。

説明
SQL_TXN_SS_SNAPSHOT あるトランザクションで行った変更内容を別のトランザクションから参照できないことを示します。この場合、クエリを再実行しても変更内容を参照することはできません。

スナップショット分離の詳細については、「スナップショット分離 の操作」を参照してください。

SQL_COPT_SS_USE_PROC_FOR_PREP

この属性は現在サポートされていません。

SQL_COPT_SS_USER_DATA

SQL_COPT_SS_USER_DATA 属性は、ユーザー データのポインターを設定します。 ユーザー データとは、接続ごとに記録されているクライアントが所有するメモリのことです。

詳細については、「 SQLGetConnectAttr」を参照してください。

SQL_COPT_SS_WARN_ON_CP_ERROR

この属性は、コード ページの変換中に損失したデータがある場合に警告を表示するかどうかを指定します。 これは、サーバーから送信されるデータにのみ適用されます。

説明
SQL_WARN_YES コード ページの変換中にデータの損失が発生した場合に、警告を表示します。
SQL_WARN_NO (既定値) コード ページの変換中にデータの損失が発生した場合に、警告を表示しません。

SQLSetConnectAttr によるサービス プリンシパル名 (SPN) のサポート

SQLSetConnectAttr を使用して、SQL_COPT_SS_SERVER_SPNおよびSQL_COPT_SS_FAILOVER_PARTNER_SPNの新しい接続属性の値を設定できます。 接続が開いている場合、これらの属性を設定することはできません。接続が開いているときにこれらの属性を設定しようとすると、"現時点での操作は正しくありません。" というメッセージと共に、エラー HY011 が返されます (SQLSetConnectOption を使用してこれらの値を設定することもできます)。

SPN の詳細については、「 クライアント接続 (ODBC)」の「サービス プリンシパル名 (SPN)」を参照してください。

SQL_COPT_SS_CONNECTION_DEAD

これは読み取り専用属性です。

SQL_COPT_SS_CONNECTION_DEADの詳細については、「 SQLGetConnectAttr 」および「 データ ソースへの接続 (ODBC)」を参照してください。

次の例では、パフォーマンス データがログに記録されます。

SQLPERF*     pSQLPERF;  
SQLINTEGER   nValue;  
  
// See if you are already logging. SQLPERF* will be NULL if not.  
SQLGetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA, &pSQLPERF,  
    sizeof(SQLPERF*), &nValue);  
  
if (pSQLPERF == NULL)  
    {  
    // Set the performance log file name.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG,  
        (SQLPOINTER) "\\My LogDirectory\\MyServerLog.txt", SQL_NTS);  
  
    // Start logging...  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
        (SQLPOINTER) SQL_PERF_START, SQL_IS_INTEGER);  
    }  
else  
    {  
    // Take a snapshot now so that your performance statistics are discernible.  
    SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
    }  
  
    // ...perform some action...  
  
// ...take a performance data snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
    // ...perform more actions...  
  
// ...take another snapshot...  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA_LOG_NOW, NULL, 0);  
  
// ...and disable logging.  
SQLSetConnectAttr(hDbc, SQL_COPT_SS_PERF_DATA,  
    (SQLPOINTER) SQL_PERF_STOP, SQL_IS_INTEGER);  
  
// Continue on...  

参照

SQLSetConnectAttr 関数
ODBC API 実装の詳細
一括コピー関数
SET ANSI_NULLS (Transact-SQL)
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)
SQLPrepare 関数
SQLGetInfo