16.9.5 SQLBindCol
(1) 機能
アプリケーションデータ領域を結果セットの列に関連づけます。
(2) 形式
SQLRETURN SQLBindCol ( SQLHSTMT StatementHandle, /* In */ SQLUSMALLINT ColumnNumber, /* In */ SQLSMALLINT TargetType, /* In */ SQLPOINTER TargetValuePtr, /* Out */ SQLLEN BufferLength, /* In */ SQLLEN * StrLen_or_IndPtr /* Out */ )
(3) 引数
- StatementHandle:
-
ステートメントハンドルを指定します。
- ColumnNumber:
-
関連づける結果セットの列の番号を指定します。
HADBはブックマークをサポートしていないため,列番号は1から始まります。
- TargetType:
-
TargetValuePtrが指す領域のCデータ型の識別子またはSQL_C_DEFAULTを指定します。SQL_C_DEFAULTを指定すると,デフォルトのCデータ型を仮定します。
- TargetValuePtr:
-
結果セットの列に関連づける領域を指すポインタを指定します。
関連づけを解除する場合は,NULLポインタを指定してください。
- BufferLength:
-
TargetValuePtrが指す領域の長さを指定します(単位:バイト長)。
- StrLen_or_IndPtr:
-
HADB ODBCドライバが返すデータの長さまたは標識を格納する領域を指すポインタを指定します。
実行後のSQLFetch関数がSQL_SUCCESSまたはSQL_SUCCESS_WITH_INFOを返す場合,HADB ODBCドライバはデータの長さ,または標識を返します。
また,列のデータがナル値の場合,戻り値にSQL_NULL_DATAを返します。
(4) 戻り値
SQL_SUCCESS,SQL_ERROR,またはSQL_INVALID_HANDLEが返されます。
(5) SQLSTATE
この関数では次のSQLSTATEを返します。
SQLSTATE |
説明 |
備考 |
返却 |
---|---|---|---|
01000 |
一般警告 |
− |
× |
07006 |
データ型属性の制限違反 |
ColumnNumberに0が指定されていますが,TargetTypeにSQL_C_BOOKMARKまたはSQL_C_VARBOOKMARK以外が指定されています。 |
× |
07009 |
無効なディスクリプタインデクス |
ColumnNumberに,結果セットの最大列数よりも大きい値が指定されています。 |
× |
HY000 |
一般エラー |
− |
× |
HY001 |
メモリ割り当てエラー |
○ |
|
HY003 |
無効なアプリケーションのバッファのデータ型 |
TargetTypeに有効なデータ型またはSQL_C_DEFAULT以外が指定されています。 |
× |
HY010 |
関数シーケンスエラー |
StatementHandleに対して呼び出された非同期実行関数が,この関数が呼び出されたときも実行中です。 |
× |
HY013 |
メモリ管理エラー |
メモリオブジェクトにアクセスできないため,関数の呼び出しを処理できません。 |
× |
HY090 |
無効な文字列長または無効なバッファ長 |
次の条件をすべて満たしています。
|
○ |
HYC00 |
オプション機能は実装されていない |
ColumnNumberに0が指定されましたが,ブックマークはサポートしていません。 |
○ |
HYT01 |
接続タイムアウト終了 |
データソースが要求に応答する前に接続タイムアウト時間が経過しました。接続タイムアウト時間は,SQLSetConnectAttrまたはSQLSetConnectAttrWのSQL_ATTR_CONNECTION_TIMEOUTで設定できます。 |
× |
IM001 |
ドライバはこの関数をサポートしていない |
− |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。
(6) 注意事項
次の機能はサポートしていません。
-
バインドオフセット
-
配列のバインド
-
行方向バインド