CLI の手引きおよび解説書

SQLExtendedBind - 列の配列のバインド

目的


仕様: DB2 CLI 6    

SQLExtendedBind() は、 SQLBindCol() または SQLBindParameter() を繰り返し呼び出さずに、列の配列をバインドする場合に使用します。

構文

SQLRETURN    SQLExtendedBind (    
                              SQLHSTMT          StatementHandle,
                              SQLSMALLINT       fBindCol,
                              SQLSMALLINT       cRecords,
                              SQLSMALLINT *     pfCType,
                              SQLPOINTER  *     rgbValue,
                              SQLINTEGER  *     cbValueMax,
                              SQLUINTEGER *     puiPrecisionCType,
                              SQLSMALLINT *     psScaleCType,
                              SQLINTEGER  **    pcbValue,
                              SQLINTEGER  **    piIndicator,
                              SQLSMALLINT *     pfParamType,
                              SQLSMALLINT *     pfSQLType,
                              SQLUINTEGER *     pcbColDef,
                              SQLSMALLINT *     pibScale ) ;

関数引き数


表 61. SQLExtendedBind() 引き数
データ・タイプ 引き数 使用法 説明
SQLHSTMT StatementHandle 入力 ステートメント・ハンドル。
SQLSMALLINT fBindCol 入力 SQL_TRUE の場合、この出力情報は SQLBindCol() に類似したものになります。そうでない場合は、SQLBindParameter() に類似したものになります。
SQLSMALLINT cRecords 入力 バインドする列の数。
SQLSMALLINT pfCType 入力 アプリケーション・データ・タイプの値の配列。
SQLPOINTER rgbValue 入力 アプリケーション・データ域を指すポインターの配列。
SQLINTEGER cbValueMax 入力 rgbValue の最大サイズの配列。
SQLUINTEGER puiPrecisionCType 入力 レコードの 10 進数の精度。使用されるのは、アプリケーション・データ・タイプが SQL_C_DECIMAL_IBM の場合だけです。
SQLSMALLINT psScaleCType 入力 レコードの 10 進数の位取り。使用されるのは、アプリケーション・データ・タイプが SQL_C_DECIMAL_IBM の場合だけです。
SQLINTEGER pcbValue 入力 長さの値を指すポインターの配列。
SQLINTEGER piIndicator 入力 標識の値を指すポインターの配列。
SQLSMALLINT pfParamType 入力 パラメーター・タイプの配列。使用されるのは、 fBindCol が FALSE の場合だけです。

この配列の各行は、 SQLBindParameter()引き数 InputOutputType と同じ目的を果たします。以下の値に設定できます。

  • SQL_PARAM_INPUT
  • SQL_PARAM_INPUT_OUTPUT
  • SQL_PARAM_OUTPUT
SQLSMALLINT pfSQLType 入力 SQL データ・タイプの配列。使用されるのは、fBindCol が FALSE の場合だけです。

この配列の各行は、 SQLBindParameter() 引き数 ParameterType と同じ目的を果たします。

SQLUINTEGER pcbColDef 入力 SQL 精度値の配列。使用されるのは、fBindCol が FALSE の場合だけです。

この配列の各行は、 SQLBindParameter() 引き数 ColumnSize と同じ目的を果たします。

SQLSMALLINT pibScale 入力 SQL 位取り値の配列。使用されるのは、 fBindCol が FALSE の場合だけです。

この配列の各行は、 SQLBindParameter() 引き数 DecimalDigits と同じ目的を果たします。

使用法

この関数は、 SQLBindCol() または SQLBindParameter() の複数回の呼び出しを置き換えるために使用します。

引き数 fBindCol は、この関数呼び出しを以下のどちらの関連付け (バインド) に使用するかを決定します。

詳しくは (許可されている引き数値など)、 SQLBindCol - アプリケーション変数または LOB ロケーターに列をバインドするおよび SQLBindParameter - バッファーまたは LOB ロケーターにパラメーター・マーカーをバインドするを参照してください。

戻りコード

診断

表 62. SQLExtendedBind() SQLSTATE
SQLSTATE 説明 解説
07006 変換が無効です。 pfCType 引き数の行によって識別されるデータ値から pfParamType 引き数によって識別されるデータ・タイプへの変換は、意味のある変換ではありません。 (たとえば、SQL_C_DATE から SQL_DOUBLE への変換は無意味です。)
07009 無効な記述子索引 引き数 cRecords に指定された値が、結果セット内の列の最大数を超えました。
40003 08S01 通信リンクに障害が起きました。 アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。
58004 予期しないシステム障害です。 回復不能システム・エラー。
HY001 メモリーの割り振り失敗です。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。
HY003 プログラム・タイプが範囲外です。 pfParamType または pfSQLType の行は、有効なデータ・タイプまたは SQL_C_DEFAULT ではありませんでした。
HY004 SQL のデータ・タイプが範囲外です。 引き数 pfParamType に指定された値が、有効な SQL データ・タイプではありません。
HY009 引き数値が無効です。 引き数 rgbValue は NULL ポインターで、引き数 cbValueMax も NULL ポインターですが、 pfParamType が SQL_PARAM_OUTPUT ではありません。
HY010 関数の順序エラーです。 実行時データ (SQLParamData()SQLPutData()) 操作中に、関数が呼び出されました。

BEGIN COMPOUND と END COMPOUND SQL の操作中に、関数が呼び出されました。

HY013 予期しないメモリーのハンドル・エラーが起きました。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを使用することができませんでした。
HY021 不整合な記述子情報 整合性検査時に検査された記述子情報は、整合性がとれていませんでした。
HY090 ストリングまたはバッファー長が無効です。 引き数 cbValueMax に指定された値は 1 より小さく、 pfParamType または pfSQLType の対応する行は、 SQL_C_CHAR、SQL_C_BINARY、または SQL_C_DEFAULT のいずれかです。
HY093 パラメーターの数値が無効です。 引き数 pfCType の行に指定された値が、1 より小さいか、サーバーでサポートされる最大数より大きい値でした。
HY094 位取り値が無効です。 pfParamType に指定された値が SQL_DECIMAL または SQL_NUMERIC であり、 DecimalDigits に指定された値が 0 より小さいかまたは引き数 pcbColDef (精度) の値より大きい値でした。

pfParamType に指定された値が SQL_C_TIMESTAMP で、 pfParamType に指定された値が SQL_CHAR または SQL_VARCHAR のどちらかであり、 DecimalDigits に指定された値が 0 より小さいかまたは 6 より大きい値でした。

HY104 精度値が無効です。 pfParamType に指定された値が SQL_DECIMAL または SQL_NUMERIC のどちらかで、 pcbColDef によって指定された値が 1 より小さい値でした。
HY105 パラメーター・タイプが無効です。 pfParamType が SQL_PARAM_INPUT、 SQL_PARAM_OUTPUT、または SQL_PARAM_INPUT_OUTPUT のいずれでもありません。
HYC00 ドライバーが機能していません。 DB2 CLI は、 pfParamType または pfSQLType の行に指定されているデータ・タイプを認識はしますが、サポートしません。

LOB ロケーター C データ・タイプが指定されましたが、接続されているサーバーは LOB データ・タイプをサポートしていません。

制約

なし。

該当するサンプルの一覧については、 sqllib\samples\cli (または sqllib/samples/cli) サブディレクトリー内の README ファイルを参照してください。

参照


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]