Share via


記述子の種類

記述子は、次のいずれかを記述するために使用されます。

  • 0 個以上のパラメーターのセット。 パラメーター記述子は、次の記述に使用できます。

    • アプリケーション パラメーター バッファー。これには、アプリケーションによって設定された入力動的引数または SQL の CALL ステートメントの実行後の出力動的引数のいずれかが含まれます。

    • 実装パラメーター バッファー。 入力動的引数の場合、アプリケーションが指定できるデータ変換の後に、アプリケーション パラメーター バッファーと同じ引数が含まれます。 出力動的引数の場合、アプリケーションで指定できるデータ変換の前に、返される引数が含まれます。

    入力動的引数の場合、動的パラメーター マーカーを含む SQL ステートメントを実行する前に、アプリケーションはアプリケーション パラメーター記述子を操作する必要があります。 入力と出力の両方の動的引数に対して、アプリケーションは実装パラメーター記述子のデータ型とは異なるデータ型を指定して、データ変換を実現できます。

  • データベース データの 1 行。 行記述子は、次の記述に使用できます。

    • データベースの 行を格納する 実装行バッファー。 (これらのバッファーには、概念的には、データベースに書き込まれた、またはデータベースから読み取られたデータが含まれます。ただし、データベース データの格納形式は指定されていません。データベースは、実装バッファー内のフォームからデータに対して追加の変換を実行できます。)

    • アプリケーションで指定できるデータ変換に従って、アプリケーションに提示されるデータ行を格納する アプリケーション行バッファー

    アプリケーションは、データベースの列データをアプリケーション変数に表示する必要がある場合に、アプリケーション行記述子で動作します。 列データのデータ変換を実現するために、アプリケーションは実装行記述子のデータ型とは異なるデータ型を指定できます。

記述子の種類の概要を次の表に示します。

バッファーの種類 行数 動的パラメーター
アプリケーション バッファー アプリケーション行記述子 (ARD) アプリケーション パラメーター記述子 (APD)
実装バッファー 実装行記述子 (IRD) 実装パラメーター記述子 (IPD)

パラメーターまたは行バッファーいずれの場合も、アプリケーションが実装記述子とアプリケーション記述子の対応するレコードで異なるデータ型を指定する場合、ドライバーは記述子を使用するときにデータ変換を実行します。 たとえば、数値と datetime の値を文字列形式に変換できます。 (有効な変換については、「付録 D: データ型」を参照してください。)

記述子は、異なるロールを実行できます。 異なるステートメントは、アプリケーションが明示的に割り当てる任意の記述子を共有できます。 あるステートメントの行記述子は、別のステートメントのパラメーター記述子として使用できます。

データベース操作で記述子がまだ使用されていない場合でも、特定の記述子がアプリケーション記述子か実装記述子かは、常に認識されます。 実装が暗黙的に割り当てる記述子の場合、実装はステートメント ハンドルに関連する定義済みの行を記録します。 SQLAllocHandle を呼び出してアプリケーションが割り当てる記述子は、アプリケーション記述子です。