記述子ハンドル
記述子は、アプリケーションまたはドライバー (実装とも呼ばれます) によって表示される、SQL ステートメントのパラメーターまたは結果セットの列を記述するメタデータのコレクションです。 したがって、記述子は次の 4 つのロールのいずれかを満たすことができます。
アプリケーション パラメーター記述子 (APD)。 アドレス、長さ、C データ型など、SQL ステートメントのパラメーターにバインドされたアプリケーション バッファーに関する情報が含まれます。
実装パラメーター記述子 (IPD)。 SQL ステートメント内のパラメーター (SQL データ型、長さ、null 許容など) に関する情報が含まれます。
アプリケーション行記述子 (ARD)。 アドレス、長さ、C データ型など、結果セット内の列にバインドされたアプリケーション バッファーに関する情報が含まれます。
実装行記述子 (IRD)。 SQL データ型、長さ、null 許容など、結果セット内の列に関する情報が含まれます。
ステートメントが割り当てられると、4 つの記述子 (各ロールに 1 つずつ入力) が自動的に割り当てられます。 これらは自動的に割り当てられた記述子と呼ばれ、常にそのステートメントに関連付けられます。 アプリケーションでは、SQLAllocHandle を使用して記述子を割り当てることもできます。 これらは明示的に割り当てられた記述子と呼ばれます。 これらは接続に割り当てられ、その接続上の 1 つ以上のステートメントに関連付けて、それらのステートメントに対する APD または ARD の役割を果たすことができます。
ODBC のほとんどの操作は、アプリケーションで記述子を明示的に使用せずに実行できます。 ただし、記述子は一部の操作に便利なショートカットを提供します。 たとえば、アプリケーションが 2 つの異なるバッファー セットからデータを挿入するとします。 バッファーの最初のセットを使用するには、SQLBindParameter を繰り返し呼び出して INSERT ステートメントのパラメーターにバインドし、ステートメントを実行します。 2 番目のバッファー セットを使用するには、このプロセスを繰り返します。 または、ある記述子の最初のバッファー セットと、別の記述子の 2 番目のバッファー セットへのバインドを設定することもできます。 バインドのセットを切り替えるために、アプリケーションは単に SQLSetStmtAttr を呼び出し、正しい記述子をステートメントに APD として関連付けます。
記述子の詳細については、「記述子の種類」を参照してください。