目的
仕様:
| 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 が特定の状況に当てはまらなかったりサポートされていなかったりした場合、以下のように、結果は戻りタイプにより決まります。
- 戻りタイプが「Y」か「N」を含む文字ストリングである場合は、「N」が戻される。
- 戻りタイプが「Y」または「N」以外の値を含む文字ストリングである場合は、空ストリングが戻される。
- 戻りタイプが 16 ビット整数である場合は、0 (ゼロ) が戻される。
- 戻りタイプが 32 ビット整数である場合は、0 (ゼロ) が戻される。
- 戻りタイプが 32 ビット・マスクである場合は、0 (ゼロ) が戻される。
- 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_TC_NONE = トランザクションはサポートされていない。
- SQL_TC_DML = トランザクションに DML ステートメント (SELECT、INSERT、UPDATE、DELETE など) のみを含めることができる。トランザクション内に DDL ステートメント (CREATE TABLE、DROP INDEX など) が検出されるとエラーとなります。
- SQL_TC_DDL_COMMIT = トランザクションに DML ステートメントのみを含めることができる。トランザクションに DDL
ステートメントが検出されると、そのトランザクションはコミットされます。
- SQL_TC_DDL_IGNORE = トランザクションに DML ステートメントのみを含めることができる。トランザクションに DDL ステートメントが検出されても無視されます。
- SQL_TC_ALL = トランザクションに任意の順序で DDL ステートメントと DML ステートメントを含めることができる。
- SQL_USER_NAME (ストリング)
- 特定のデータベース内で使用されているユーザー名。これは、SQLConnect() 呼び出し時に指定された ID です。
戻りコード
- SQL_SUCCESS
- SQL_SUCCESS_WITH_INFO
- SQL_ERROR
- SQL_INVALID_HANDLE
制約事項
なし。
関連した解説