Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.6.1 SQLGetDescField,SQLGetDescFieldW

〈この項の構成〉

(1) 機能

引数で指定されたディスクリプタフィールドの値を返します。

(2) 形式

(3) 引数

DescriptorHandle

ディスクリプタハンドルを指定します。

RecNumber

列番号(ARDまたはIRD),またはパラメタ番号(APDまたはIPD)を指定します。

FieldIdentifierがヘッダフィールドを示す場合,この引数の指定は無視されます。

FieldIdentifier

値を返すディスクリプタのフィールド(ヘッダフィールドまたはレコードフィールド)を指定します。指定できる属性については,「16.17 SQLGetDescField,SQLGetDescFieldW,SQLSetDescFieldおよびSQLSetDescFieldWに指定できる属性」を参照してください。

ValuePtr

ディスクリプタ情報を返すバッファへのポインタを指定します。この引数にはNULLも指定できます。

BufferLength

FieldIdentifierに指定するディスクリプタフィールドのデータ型が,文字列またはバイナリの場合,*ValuePtrの長さを指定します(単位:バイト長)。それ以外のデータ型の場合,この引数の指定は無視されます。SQL_NTSは指定できません。

StringLengthPtr

*ValuePtrに設定する値の有効な長さ(単位:バイト長)を格納するバッファへのポインタを指定します。

この引数にNULLが指定された場合でもValuePtrに値は設定されます。

(4) 戻り値

SQL_SUCCESSSQL_SUCCESS_WITH_INFOSQL_ERRORSQL_NO_DATA,またはSQL_INVALID_HANDLEが返されます。

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

×

01004

文字列データの右側が切り捨てられた

BufferLengthに指定された値は,列名のバイト長より小さいため,列名が切り捨てられました。切り捨てられる前の列名の長さが,*StringLengthPtrに格納されます。このとき,SQL_SUCCESS_WITH_INFOを返します。

01S51

文字コード変換時に置き換えが発生した

変換できない文字コードを検出し,指定の文字に置き換えました。このとき,SQL_SUCCESS_WITH_INFOを返します。

07009

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

RecNumber0以下の値が指定されています。

08S01

通信リンク失敗

×

HY001

メモリ割り当てエラー

×

HY007

関連づけられたステートメントが準備されていない

HY010

関数シーケンスエラー

この関数を実行する前に,DescriptorHandleが関連づけられているStatementHandleに対して,SQLExecuteSQLExecDirectSQLExecDirectWまたはSQLParamDataのどれかが呼び出され,SQL_NEED_DATAを返しました。その後,実行時データパラメタまたは実行時データ列の設定が完了していません。

HY013

メモリ管理エラー

×

HY021

ディスクリプタ情報の不一致

×

HY090

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

  • *ValuePtrが文字列で,BufferLengthに0より小さい値が指定されています。

  • BufferLengthに無効な値(SQL_NTS)が指定されました。

HY091

無効なディスクリプタフィールド識別子

FieldIdentifierは,ODBC定義のフィールドではありません。

HYT01

接続タイムアウト終了

×

IM001

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

×

(凡例)

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

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

−:なし。