Hitachi

Hitachi Advanced Data Binder AP開発ガイド


16.4.3 SQLGetInfo,SQLGetInfoW

〈この項の構成〉

(1) 機能

接続に関連づけられているドライバとデータソースの一般的な情報を返します。

(2) 形式

(3) 引数

ConnectionHandle

接続ハンドルを指定します。

InfoType

情報型を指定します。

指定できる情報型については,「16.13 SQLGetInfoおよびSQLGetInfoWのInfoTypeに指定できる情報型」を参照してください。

InfoValuePtr

情報を返すバッファのポインタを指定します。要求されたInfoTypeに応じた情報が返されます。指定できる情報型をInfoTypeに指定した場合でも,その情報型が未サポートのときは,空の文字列や,0が返されることがあります。

BufferLength

*InfoValuePtrバッファの長さ(単位:バイト長)を指定します。この長さにNULL終端文字は含まれます。SQL_NTSは指定できません。

*InfoValuePtrの値が文字列以外,またはInfoValuePtrがNULLポインタの場合,この引数の指定は無視されます。

InfoValuPtrの値が文字列以外の場合,HADB ODBCドライバはInfoTypeに基づき,*InfoValuePtrのサイズをSQLUSMALLINTまたはSQLUINTEGERと見なします。バッファサイズが不足している場合の動作は保証しません。

StringLengthPtr

*InfoValuePtrに返す,有効な長さ(単位:バイト長)の合計を返すバッファへのポインタを指定します。この長さにNULL終端文字は含まれません。

重要

文字データの場合,この長さ(単位:バイト長)がBufferLengthからNULL終端文字分を引いた長さより大きい場合,*InfoValuePtrに格納される文字列はBufferLengthからNULL終端文字分を引いた長さ(単位:バイト長)に切り捨てられ,末尾にNULL終端文字が付加されます。そのほかのデータ型の場合,BufferLengthの値は無視され,ドライバはInfoTypeに基づき,*InfoValuePtrのサイズをSQLUSMALLINTまたはSQLUINTEGERと見なします。

(4) 戻り値

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

(5) SQLSTATE

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

SQLSTATE

説明

備考

返却

01000

一般警告

×

01004

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

*InfoValuePtrバッファの大きさが不足しているため,要求されたすべての情報を格納できませんでした(情報が切り捨てられました)。切り捨てられる前の要求情報の長さが,*StringLengthPtrに格納されます。このとき,SQL_SUCCESS_WITH_INFOを返します。

01S51

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

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

08003

接続が存在しない

×

08S01

通信リンク失敗

×

HY000

一般エラー

×

HY001

メモリ割り当てエラー

×

HY009

NULLポインタの不正使用

×

HY013

メモリ管理エラー

×

HY024

無効な属性値

×

HY090

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

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

HY096

情報型が範囲外である

InfoTypeに指定された値はサポートしていません。

HY117

接続がサスペンド中

×

HYC00

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

×

HYT01

接続タイムアウト終了

×

IM001

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

×

(凡例)

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

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

−:なし。

(6) 注意事項

InfoTypeSQL_DRIVER_ODBC_VER情報型以外を指定する場合,接続が確立している必要があります。