Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.6.2 SQLGetDescRec,SQLGetDescRecW

〈この項の構成〉

(1) 機能

引数で指定されたディスクリプタレコードの複数フィールドの現在の設定または値を返します。列またはパラメタの名前,データ型,および格納位置を記述するフィールドが返されます。

(2) 形式

(3) 引数

DescriptorHandle

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

RecNumber

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

Name

ディスクリプタレコードのSQL_DESC_NAMEフィールドの値を返すバッファへのポインタを指定します。

BufferLength

*Nameバッファの長さを指定します。

この長さにNULL終端文字は含まれます。SQL_NTSは指定できません。

StringLengthPtr

*Nameバッファに返す有効なデータの長さを格納するバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。

重要

ここに格納された*Nameの長さが,BufferLengthからNULL終端文字分を引いた長さより大きい場合,*Nameに格納される文字列はBufferLengthからNULL終端文字分を引いた長さに切り捨てられ,末尾にNULL終端文字が付加されます。

注※

長さの単位は,SQLGetDescRecの場合はバイト長,SQLGetDescRecWの場合は文字数となります。

TypePtr

ディスクリプタレコードのSQL_DESC_TYPEフィールドの値を返すバッファへのポインタを指定します。

SubTypePtr

ディスクリプタレコードのSQL_DESC_DATETIME_INTERVAL_CODEフィールドの値を返すバッファへのポインタを指定します。

LengthPtr

ディスクリプタレコードのSQL_DESC_OCTET_LENGTHフィールドの値を返すバッファへのポインタを指定します。

PrecisionPtr

ディスクリプタレコードのSQL_DESC_PRECISIONフィールドの値を返すバッファへのポインタを指定します。

ScalePtr

ディスクリプタレコードのSQL_DESC_SCALEフィールドの値を返すバッファへのポインタを指定します。

NullablePtr

ディスクリプタレコードのSQL_DESC_NULLABLEフィールドの値を返すバッファへのポインタを指定します。

(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

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

RecNumberに0以下の値が指定されています。

08S01

通信リンク失敗

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

×

HY007

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

HY010

関数シーケンスエラー

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

HY013

メモリ管理エラー

×

HY090

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

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

HYT01

接続タイムアウト終了

×

IM001

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

×

(凡例)

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

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

−:なし。