環境、接続、およびステートメントには、それぞれ定義済みの属性 (またはオプション) の集まりがあります。アプリケーションですべての属性を照会することができますが、省略時値を変更できるのは一部の属性だけです。アプリケーションで属性値を変更して、DB2 CLI の動作を変更することができます。
環境ハンドルには、その環境での DB2 CLI 関数の動作を制御する属性があります。アプリケーションでは、SQLSetEnvAttr() を呼び出して属性の値を指定したり、 SQLGetEnvAttr() を呼び出して現行属性値を得ることができます。 SQLSetEnvAttr() は、接続ハンドルを割り振る前にのみ呼び出すことができます。
接続ハンドルには、その接続での DB2 CLI 関数の動作を制御する属性があります。変更できる属性は、次の種類に分かれます。
アプリケーションでは、 SQLSetConnectAttr() を呼び出して接続属性の値を変更したり、 SQLGetConnectAttr() を呼び出して属性の現行値を得ることができます。ハンドルが割り振られた後であればいつでも設定できる接続属性の例としては、 コミットまたはロールバックで紹介した自動コミット・オプションがあります。各属性が設定可能なタイミングに関する詳細な説明については、 SQLSetConnectAttr - 接続属性を設定するを参照してください。
ステートメント・ハンドルには、そのステートメント・ハンドルを使って実行する CLI 関数の動作を制御する属性があります。変更できるステートメント属性は、次の種類に分かれます。
アプリケーションでは、 SQLSetStmtAttr() を呼び出して設定可能なステートメント属性の値を指定したり、 SQLGetStmtAttr() を呼び出して属性の現行値を得ることができます。各属性が設定可能なタイミングに関する詳細な説明については、 SQLSetStmtAttr - ステートメントに関連したオプションの設定を参照してください。
SQLSetConnectAttr() 関数を、ステートメント属性を設定するために使用することはできません。この関数は、バージョン 5 より前の DB2 CLI でサポートされていました。詳しくは、SQLSetConnectAttr() を使用してステートメント属性のサブセットを設定するを参照してください。
アプリケーションの多くは、省略時の属性設定値だけを使用します。しかし、これらの省略時値の一部が、アプリケーションの特定のユーザーには適さない状況もありえます。 DB2 CLI には、エンド・ユーザーが実行時にこれらの省略時値の一部を変更する方式が 2 つ備えられています。 1 番目の方式は、SQLDriverConnect() および SQLBrowseConnect() 関数に接続ストリングを入力するときに新しい省略時属性値を指定するものです。 2 番目の方式は、DB2 CLI 初期設定ファイル内の新しい省略時属性値の仕様にかかわるものです。
DB2 CLI 初期設定ファイルを使用して、そのワークステーション上のすべての DB2 CLI アプリケーションについて省略時値を変更することができます。 SQLDriverConnect() 接続ストリング中に省略時属性値を指定する方法がアプリケーションで使用できない場合は、エンド・ユーザーにとってこの方法が省略時値を変更する唯一の方法になります。 SQLDriverConnect() に指定される省略時属性値によって、特定の接続に関する DB2 CLI 初期設定ファイル内の値が指定変更されます。エンド・ユーザーが DB2 CLI 初期設定ファイルを使用する方法に関する情報と、変更できる省略時値のリストについては、DB2 CLI/ODBC 構成キーワードのリストを参照してください。
省略時値変更のメカニズムは、エンド・ユーザーの調整用です。アプリケーション開発者は、適切な属性設定関数を使用する必要があります。アプリケーションが属性設定やオプション関数を、初期設定ファイルや接続ストリングの指定とは違う値を指定して呼び出すと、初期省略時値は指定変更され、新しい値が有効になります。
変更できる属性は、設定 属性またはオプション関数の詳しい説明のところにリストされています。 第 5 章, DB2 CLI 関数を参照してください。読み取り専用オプションは、獲得 属性またはオプション関数の詳しい説明のところにリストされています。
一般に使用される属性の一部については、付録 A, プログラミングのヒントと提案を参照してください。
次の図は、基本的な接続シナリオに属性関数を追加する様子を示しています。
![]() |