Hitachi

Hitachi Advanced Data Binder AP開発ガイド


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_SUCCESSSQL_ERROR,またはSQL_INVALID_HANDLEが返されます。

(5) SQLSTATE

この関数では次のSQLSTATEを返します。

SQLSTATE

説明

備考

返却

01000

一般警告

×

07006

データ型属性の制限違反

ColumnNumber0が指定されていますが,TargetTypeSQL_C_BOOKMARKまたはSQL_C_VARBOOKMARK以外が指定されています。

×

07009

無効なディスクリプタインデクス

ColumnNumberに,結果セットの最大列数よりも大きい値が指定されています。

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

HY003

無効なアプリケーションのバッファのデータ型

TargetTypeに有効なデータ型またはSQL_C_DEFAULT以外が指定されています。

×

HY010

関数シーケンスエラー

StatementHandleに対して呼び出された非同期実行関数が,この関数が呼び出されたときも実行中です。

×

HY013

メモリ管理エラー

メモリオブジェクトにアクセスできないため,関数の呼び出しを処理できません。

×

HY090

無効な文字列長または無効なバッファ長

次の条件をすべて満たしています。

  • TargetValuePtrにNULLポインタ以外が指定されています。

  • BufferLengthに0未満の値が指定されています。

HYC00

オプション機能は実装されていない

ColumnNumber0が指定されましたが,ブックマークはサポートしていません。

HYT01

接続タイムアウト終了

データソースが要求に応答する前に接続タイムアウト時間が経過しました。接続タイムアウト時間は,SQLSetConnectAttrまたはSQLSetConnectAttrWSQL_ATTR_CONNECTION_TIMEOUTで設定できます。

×

IM001

ドライバはこの関数をサポートしていない

×

(凡例)

○:HADB ODBCドライバが返すことがあるSQLSTATEです。

×:HADB ODBCドライバが返さないSQLSTATEです。

−:なし。

(6) 注意事項

次の機能はサポートしていません。