16.6.1 SQLGetDescField,SQLGetDescFieldW
- 〈この項の構成〉
(1) 機能
引数で指定されたディスクリプタフィールドの値を返します。
(2) 形式
-
SQLGetDescFieldの場合
SQLRETURN SQLGetDescField ( SQLHDESC DescriptorHandle, /* In */ SQLSMALLINT RecNumber, /* In */ SQLSMALLINT FieldIdentifier, /* In */ SQLPOINTER ValuePtr, /* Out */ SQLINTEGER BufferLength, /* In */ SQLINTEGER * StringLengthPtr /* Out */ )
-
SQLGetDescFieldWの場合
SQLRETURN SQLGetDescFieldW ( SQLHDESC DescriptorHandle, /* In */ SQLSMALLINT RecNumber, /* In */ SQLSMALLINT FieldIdentifier, /* In */ SQLPOINTER ValuePtr, /* Out */ SQLINTEGER BufferLength, /* In */ SQLINTEGER * StringLengthPtr /* Out */ )
(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_SUCCESS,SQL_SUCCESS_WITH_INFO,SQL_ERROR,SQL_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 |
通信リンク失敗 |
− |
× |
HY001 |
メモリ割り当てエラー |
× |
|
HY007 |
関連づけられたステートメントが準備されていない |
○ |
|
HY010 |
関数シーケンスエラー |
この関数を実行する前に,DescriptorHandleが関連づけられているStatementHandleに対して,SQLExecute,SQLExecDirect,SQLExecDirectWまたはSQLParamDataのどれかが呼び出され,SQL_NEED_DATAを返しました。その後,実行時データパラメタまたは実行時データ列の設定が完了していません。 |
○ |
HY013 |
メモリ管理エラー |
− |
× |
HY021 |
ディスクリプタ情報の不一致 |
× |
|
HY090 |
無効な文字列長または無効なバッファ長 |
|
○ |
HY091 |
無効なディスクリプタフィールド識別子 |
FieldIdentifierは,ODBC定義のフィールドではありません。 |
○ |
HYT01 |
接続タイムアウト終了 |
− |
× |
IM001 |
ドライバはこの関数をサポートしていない |
× |
- (凡例)
-
○:HADB ODBCドライバが返すことがあるSQLSTATEです。
×:HADB ODBCドライバが返さないSQLSTATEです。
−:なし。