Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.6.3 SQLSetDescField,SQLSetDescFieldW

〈この項の構成〉

(1) 機能

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

(2) 形式

(3) 引数

DescriptorHandle

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

RecNumber

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

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

この引数に該当するレコード番号を持つディスクリプタレコードがない場合,この関数は,そのレコード番号を持つディスクリプタレコードを新しく作成します。

FieldIdentifier

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

ValuePtr

設定するディスクリプタ情報(ポインタまたは整数値)を指定します。指定できる値については,「16.17 SQLGetDescField,SQLGetDescFieldW,SQLSetDescFieldおよびSQLSetDescFieldWに指定できる属性」を参照してください。

BufferLength

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

(4) 戻り値

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

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

×

01S02

オプション値の変更

×

07009

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

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

  • RecNumberがデータソースがサポートしている列の最大個数またはパラメタの最大個数より大きく,DescriptorHandleがARDまたはAPDと関連づけられています。

  • FieldIdentifierSQL_DESC_COUNTで,ValuePtrに0より小さい値が指定されています。

08S01

通信リンク失敗

×

22001

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

×

5C002

文字コードの変換エラー

変換できない文字コードを検出しました。

HY001

メモリ割り当てエラー

HY010

関数シーケンスエラー

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

HY013

メモリ管理エラー

×

HY016

インプリメンテーション行ディスクリプタを変更できない

DescriptorHandleがIRDと関連づけられていますが,FieldIdentifierSQL_DESC_ARRAY_STATUS_PTRまたはSQL_DESC_ROWS_PROCESSED_PTR以外です。

HY021

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

×

HY090

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

×

HY091

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

  • FieldIdentifierに指定された値がODBC定義のフィールドでなく,実装時に定義された値でもありません。

  • FieldIdentifierDescriptorHandleに対して無効です。

HY092

無効な属性識別子,または無効なオプション識別子

  • FieldIdentifierの指定値に対して,ValuePtrに設定されている値は無効です。

  • FieldIdentifierSQL_DESC_UNNAMEDで,ValuePtrSQL_NAMEDです。

HY105

無効なパラメタの種類

SQL_DESC_PARAMETER_TYPEフィールドに指定された値が無効(SQL_PARAM_INPUT以外)です。

HYT01

接続タイムアウト終了

×

IM001

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

×

(凡例)

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

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

−:なし。