行セットのバインドの使用 (ODBC)
列方向のバインドを使用するには
バインドされた各列で、次の操作を行います。
データ値を格納するための R 個以上の列バッファーの配列を割り当てます。R は行セット内の行の数です。
必要に応じて、データ長を格納するための R 個以上の列バッファーの配列を割り当てます。
SQLBindCol を呼び出して、列のデータ値とデータ長の配列を、行セットの列にバインドします。
SQLSetStmtAttr を呼び出して、次の属性を設定します。
SQL_ATTR_ROW_ARRAY_SIZE を、行セットの行の数 (R) に設定します。
SQL_ATTR_ROW_BIND_TYPE を SQL_BIND_BY_COLUMN に設定します。
SQL_ATTR_ROWS FETCHED_PTR 属性を、フェッチされた行の数を格納する SQLUINTEGER 変数を指すように設定します。
SQL_ATTR_ROW_STATUS_PTR を、行状態インジケーターを格納する SQLUSSMALLINT 変数の配列 [R] を指すように設定します。
ステートメントを実行します。
SQLFetch または SQLFetchScroll を呼び出すたびに、R 個の行が取得され、バインドされている列にデータが転送されます。
行方向のバインドを使用するには
構造体の配列 [R] を割り当てます。この R は行セット内の行数です。 構造体には各列について 1 つの要素があり、各要素は 2 つの部分で構成されています。
最初の部分は、列データを格納する適切なデータ型の変数です。
2 つ目の部分は、列状態インジケーターを格納する SQLINTEGER 変数です。
SQLSetStmtAttr を呼び出して、次の属性を設定します。
SQL_ATTR_ROW_ARRAY_SIZE を、行セットの行の数 (R) に設定します。
SQL_ATTR_ROW_BIND_TYPE を、手順 1. で割り当てた構造体のサイズに設定します。
SQL_ATTR_ROWS_FETCHED_PTR 属性を、フェッチされた行の数を格納する SQLUINTEGER 変数を指すように設定します。
SQL_ATTR_PARAMS_STATUS_PTR を、行状態インジケーターを格納する SQLUSSMALLINT 変数の配列 [R] を指すように設定します。
結果セット内の列ごとに、SQLBindCol を呼び出して、その列のデータ値およびデータ長のポインターが、手順 1. で割り当てた構造体の配列の最初の要素にある変数を指すように指定します。
ステートメントを実行します。
SQLFetch または SQLFetchScroll を呼び出すたびに、R 個の行が取得され、バインドされている列にデータが転送されます。