仕様: | 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 ) ;
関数引き数
データ・タイプ | 引き数 | 使用法 | 説明 |
---|---|---|---|
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 と同じ目的を果たします。以下の値に設定できます。
|
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 ファイルを参照してください。
参照