SQLGetInfo -- 一般情報の取得

目的

仕様: DB2 CLI 1.1 ODBC 1.0 ISO CLI

SQLGetInfo() は、アプリケーションの接続先の DBMS に関する一般情報 (サポートされているデータ変換を含む) を戻します。

構文

SQLRETURN   SQLGetInfo       (
                SQLHDBC          ConnectionHandle,   /* hdbc */
                SQLUSMALLINT      InfoType,      /* fInfoType */
                SQLPOINTER        InfoValuePtr,    /* rgbInfoValue */
                SQLSMALLINT       BufferLength,        /* cbInfoValueMax */             
                SQLSMALLINT     *FAR StringLengthPtr,        /* pcbInfoValue */
                

関数の引き数

表 69. SQLGetInfo の引き数

データ・タイプ 引き数 用途 説明
SQLHDBC ConnectionHandle 入力 データベース接続ハンドル。
SQLUSMALLINT InfoType 出力 欲しい情報のタイプ。 この引き数は、「データ・タイプとデータ変換」表の第 1 列に入っているいずれかの値でなければならない。
SQLPOINTER InfoValuePtr 出力 (入力も) この関数が必要情報を保管するバッファーを指すポインター。検索する情報のタイプに応じて、以下の 5 つのタイプの情報が戻される。

16 ビット整数値

32 ビット整数値

32 ビット・バイナリー値

32 ビット・マスク

ヌル終了文字ストリング

SQLSMALLINT BufferLength 入力 InfoValuePtr が指すバッファーの最大サイズ。
SQLSMALLINT * StrLen_or_IndPtr 出力 この関数が、必要な情報を戻すために使用可能な合計バイト数を戻す場所を指すポインター。 ストリング出力の場合は、このサイズにはヌル終了文字は含まれません。

StringLengthPtr が指す位置にある値が BufferLength で 指定されている InfoValuePtr バッファーのサイズより大きい場合は、 ストリング出力情報は BufferLength - 1 バイトまで切り捨てられ、 この関数は SQL_SUCCESS_WITH_INFO で戻ります。

使用法

InfoType が取り得る値のリストと、SQLGetInfo() がその値に関して戻す情報については、『SQLGetInfo が戻す情報』を参照してください。

DB2 CLI は、この表に掲載されている各 InfoType に対する値を戻します。InfoType が特定の状況に当てはまらなかったりサポートされていなかったりした場合、以下のように、結果は戻りタイプにより決まります。

SQLGetInfo が戻す情報

SQL_DBMS_NAME (ストリング)
アクセスされる DBMS 製品の名前。例えば「DB2 Everyplace」。

SQL_DBMS_VER (ストリング)
DB2 Everyplace DBMS 製品のバージョン。戻される情報は DB2 Everyplace Vm.v.r Build yyyy-mm-dd という形式のストリングです。 ここで、m はメジャー・バージョンを、v はマイナー・バージョンを、r はリリースを、そして yyyy-mm-dd は ISO 形式でのビルドの日付を示します。

例えば、次のようになります。

'DB2 Everyplace V8.1.2 Build 2003-04-01'
は、2003 年 4 月 1 日にビルドされた DB2 Everyplace バージョン 8.1.2 です

注:
アプリケーションは、少なくとも 39 文字を入れることのできるバッファー (BUFSIZE) を必要とします。 例えば、次のようになります。

rc = SQLGetInfo(hdbc, SQL_DBMS_VER, buf, BUFSIZE, &len); 

SQL_IDENTIFIER_QUOTE_CHAR (ストリング)
区切り ID を囲むために使用される文字を示します。

SQL_MAX_BINARY_LITERAL_LEN (32 ビット符号なし整数)
SQL ステートメント内の 16 進リテラルの最大長を指定する 32 ビット符号なし整数値。

SQL_MAX_CHAR_LITERAL_LEN (32 ビット符号なし整数)
SQL ステートメント内の文字リテラルの最大長 (バイト単位)。

SQL_MAX_COLUMN_NAME_LEN (16 ビット整数)
列名の最大長 (バイト単位)。

SQL_MAX_COLUMNS_IN_GROUP_BY (16 ビット整数)
サーバーが GROUP BY 文節内でサポートする列の最大数を示します。制限がなければゼロ。

SQL_MAX_COLUMNS_IN_INDEX (16 ビット整数)
サーバーが索引内でサポートする列の最大数を示します。制限がなければゼロ。

SQL_MAX_COLUMNS_IN_ORDER_BY (16 ビット整数)
サーバーが ORDER BY 文節内でサポートする列の最大数を示します。制限がなければゼロ。

SQL_MAX_COLUMNS_IN_SELECT (16 ビット整数)
サーバーが選択リスト内でサポートする列の最大数を示します。制限がなければゼロ。

SQL_MAX_CONCURRENT_ACTIVITIES (16 ビット整数)
DB2 Everyplace CLI ドライバーがサポートできるアクティブ環境の最大数。指定された制限がないか、または制限が不明である場合は、 この値はゼロに設定されます。

SQL_MAX_DRIVER_CONNECTIONS (16 ビット整数)
アプリケーションごとにサポートされるアクティブ接続の最大数。

SQL_MAX_INDEX_SIZE (32 ビット符号なし整数)
サーバーが索引内で結合列に対してサポートする最大サイズを示します (バイト単位)。制限がなければゼロ。

SQL_MAX_ROW_SIZE (32 ビット符号なし整数)
サーバーが基本表の単一行内でサポートする最大長を指定します (バイト単位)。制限がなければゼロ。

SQL_MAX_STATEMENT_LEN (32 ビット符号なし整数)
ステートメント内の空白文字数も含めた、SQL ステートメント・ストリングの最大長を示します (バイト単位)。

SQL_MAX_TABLE_NAME_LEN (16 ビット整数)
表名の最大長 (バイト単位)。

SQL_MAX_TABLES_IN_SELECT (16 ビット整数)
照会指定の FROM 文節内で使用可能な表名の最大数を示します。

SQL_MAX_USER_NAME_LEN (16 ビット整数)
ユーザー ID に許可されている最大サイズを示します (バイト単位)。

SQL_SEARCH_PATTERN_ESCAPE (ストリング)
(SQLTables(), SQLColumns()) などのカタログ関数に対してドライバーがエスケープ文字として何をサポートしているかを指定するのに使用されます。

SQL_TXN_CAPABLE (16 ビット整数)
トランザクションに DDL または DML のいずれか、あるいはその両方を入れることができるかどうかを示します。

SQL_USER_NAME (ストリング)
特定のデータベース内で使用されているユーザー名。これは、SQLConnect() 呼び出し時に指定された ID です。

戻りコード

制約事項

なし。

関連した解説