SQLSetConnectAttr
適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics 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 | 接続では、SQL Server で定義された NULL の処理、文字データ型の埋め込み、および警告が使用されます。 |
接続プールを使用する場合は、SQLSetConnectAttr ではなく、SQL_COPT_SS_ANSI_NPWを接続文字列で設定する必要があります。 接続プールを使用している場合、接続が確立された後にこの属性を変更しようとすると、何も通知されずに失敗します。
SQL_COPT_SS_APPLICATION_INTENT
アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 指定できる値は、 Readonly および ReadWrite です。 次に例を示します。
SQLSetConnectAttr(hdbc, SQL_COPT_SS_APPLICATION_INTENT, TEXT("Readonly"), SQL_NTS)
既定値は ReadWrite です。 ALWAYS On 可用性グループ AG に対する SQL Server Native Client のサポートの詳細については、「 SQL Server Native Client support for high availability, disaster Recovery」を参照してください。
SQL_COPT_SS_ATTACHDBFILENAME
SQL_COPT_SS_ATTACHDBFILENAME 属性は、アタッチ可能なデータベースのプライマリ ファイルの名前を指定します。 このデータベースがアタッチされ、接続の既定のデータベースとして使用されます。 SQL_COPT_SS_ATTACHDBFILENAMEを使用するには、接続属性SQL_ATTR_CURRENT_CATALOGの値として、または DATABASE = SQLDriverConnect のパラメーターとしてデータベースの名前を指定する必要があります。 データベースが以前にアタッチされていた場合、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 関数を呼び出します。 その後、アプリケーションは
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 support for high availability, disaster Recovery」を参照してください。
値 | 説明 |
---|---|
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 Serverchar、 varchar、および 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)の「Service Principal Names (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