SQLSetConnectAttr
SQL Server Native Client ODBC ドライバーでは、SQL_ATTR_CONNECTION_TIMEOUT の設定が無視されます。
SQL_ATTR_TRANSLATE_LIB も無視されます。他の変換ライブラリの指定はサポートされていません。 Microsoft ODBC driver for SQL Server を使用するように、アプリケーションを簡単に移植できるようにするには、SQL_ATTR_TRANSLATE_LIB で設定される値をドライバー マネージャーのバッファーにコピーしたり、そこからコピーしたりするようにします。
SQL Server Native Client ODBC ドライバーでは、REPEATABLE READ トランザクション分離レベルが SERIALIZABLE として実装されます。
SQL Server 2005 で、新しいトランザクション分離レベル属性 SQL_COPT_SS_TXN_ISOLATION のサポートが導入されました。 SQL_COPT_SS_TXN_ISOLATION を SQL_TXN_SS_SNAPSHOT に設定すると、トランザクションがスナップショット分離レベルで実行されることが報告されます。
注 |
---|
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 |
After |
SQL_COPT_SS_ENCRYPT |
接続前 |
SQL_COPT_SS_ENLIST_IN_DTC |
After |
SQL_COPT_SS_ENLIST_IN_XA |
After |
SQL_COPT_SS_FALLBACK_CONNECT |
接続前 |
SQL_COPT_SS_FAILOVER_PARTNER |
接続前 |
SQL_COPT_SS_INTEGRATED_SECURITY |
接続前 |
SQL_COPT_SS_MARS_ENABLED |
接続前 |
SQL_COPT_SS_MULTISUBMIT_FAILOVER |
接続前 |
SQL_COPT_SS_OLDPWD |
接続前 |
SQL_COPT_SS_PERF_DATA |
After |
SQL_COPT_SS_PERF_DATA_LOG |
After |
SQL_COPT_SS_PERF_DATA_LOG_NOW |
After |
SQL_COPT_SS_PERF_QUERY |
After |
SQL_COPT_SS_PERF_QUERY_INTERVAL |
After |
SQL_COPT_SS_PERF_QUERY_LOG |
After |
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
アプリケーションがサーバーに接続するときのワークロードのタイプを宣言します。 有効値は、Readonly および ReadWrite です。 次にその例を示します。
SQLSetConnectAttr(hdbc, SQL_COPT_SS_APPLICATION_INTENT, TEXT("Readonly"), SQL_NTS)
既定値は ReadWrite です。 SQL Server Native Client による AlwaysOn 可用性グループ AG のサポートの詳細については、「SQL Server Native Client の HADR サポート」を参照してください。
SQL_COPT_SS_ATTACHDBFILENAME
SQL_COPT_SS_ATTACHDBFILENAME 属性は、アタッチ可能なデータベースのプライマリ ファイルの名前を指定します。 このデータベースがアタッチされ、接続の既定のデータベースとして使用されます。 SQL_COPT_SS_ATTACHDBFILENAME 属性を使用するには、接続属性 SQL_ATTR_CURRENT_CATALOG の値または SQLDriverConnect の DATABASE = parameter でデータベース名を指定する必要があります。 データベースが以前にアタッチされていた場合は、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 トランザクション オブジェクトを作成します。 その後、アプリケーションでは、SQL_COPT_SS_ENLIST_IN_DTC 属性を指定して SQLSetConnectAttr を呼び出し、トランザクション オブジェクトを ODBC 接続と関連付けます。 関連のあるすべてのデータベース操作は、MS DTC トランザクションで保護されます。 アプリケーションでは、SQL_DTC_DONE 値を指定して SQLSetConnectAttr を呼び出し、接続と 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_ENLIST_IN_XA にパラメーター TRUE を指定して SQLSetConnectAttr を呼び出し、XA トランザクションと ODBC 接続を関連付けます。 関連のあるすべてのデータベース操作は、XA トランザクションで保護されます。 XA トランザクションと ODBC 接続の関連付けを完了するには、クライアントで 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 の処理の一環として提供されるユーザー ID とパスワードを無視します。
値 |
説明 |
---|---|
SQL_IS_OFF |
既定値です。 ログインでユーザー ID とパスワードの検証に SQL Server 認証を使用します。 |
SQL_IS_ON |
SQL Server に対するユーザーのアクセス権の検証に Windows 認証を使用します。 |
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
異なるサブネット上にある AlwaysOn 可用性グループ 可用性グループ (AG) に対してアプリケーションが接続している場合、この接続プロパティによって、(現在) アクティブなサーバーを迅速に検出し、接続するように SQL Server Native Client が構成されます。 次にその例を示します。
SQLSetConnectAttr(hdbc, SQL_COPT_SS_MULTISUBMIT_FAILOVER, SQL_IS_ON, SQL_IS_INTEGER)
SQL Server Native Client による AlwaysOn 可用性グループ AG のサポートの詳細については、「SQL Server Native Client の HADR サポート」を参照してください。
値 |
説明 |
---|---|
SQL_IS_ON |
フェールオーバーが存在する場合に、SQL Server Native Client による迅速な再接続が提供されます。 |
SQL_IS_OFF |
フェールオーバーが存在する場合に、SQL Server Native Client による迅速な再接続は提供されません。 |
SQL_COPT_SS_OLDPWD
SQL Server 2005 では、SQL Server 認証におけるパスワードの期限切れが導入されました。 クライアントから接続の古いパスワードと新しいパスワードの両方を提供できるようにするために、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 ステートメントにおける引用符で囲まれた識別子の使用を有効または無効にします。 引用符で囲まれた識別子を指定することにより、"My Table" のように識別子に空白が含まれていて通常は無効になるオブジェクト名も、SQL Server Native Client ODBC ドライバーでは許可されます。 詳細については、「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 の char 列、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) のサポート
新しい接続属性である SQL_COPT_SS_SERVER_SPN および SQL_COPT_SS_FAILOVER_PARTNER_SPN の値は、SQLSetConnectAttr を使用して設定できます。 接続が開いている場合、これらの属性を設定することはできません。接続が開いているときにこれらの属性を設定しようとすると、"現時点での操作は正しくありません。" というメッセージと共に、エラー HY011 が返されます ((これらの値は、SQLSetConnectOption を使用して設定することもできます)。
SPN の詳細については、「クライアント接続におけるサービス プリンシパル名 (SPN) (ODBC)」を参照してください。
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...
関連項目
参照
SET ANSI_PADDING (Transact-SQL)
SET ANSI_WARNINGS (Transact-SQL)
SET CONCAT_NULL_YIELDS_NULL (Transact-SQL)
SET QUOTED_IDENTIFIER (Transact-SQL)