CLI の手引きおよび解説書

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 */

関数引き数

表 111. SQLGetInfo 引き数
データ・タイプ 引き数 使用法 説明
SQLHDBC ConnectionHandle 入力 データベース接続ハンドル
SQLUSMALLINT InfoType 入力 ご希望の情報タイプ。引き数は、データ・タイプとデータ変換にある表の最初の列の値のうちの 1 つでなければなりません。
SQLPOINTER InfoValuePtr 出力 (また入力) この関数がご希望の情報を保管するバッファーを指すポインター。検索される情報のタイプに基づいて、以下の 5 つの情報タイプを戻すことができます。
  • 16 ビットの整数値
  • 32 ビットの整数値
  • 32 ビットの 2 進数値
  • 32 ビット・マスク
  • NULL 終了文字ストリング
SQLSMALLINT BufferLength 入力 InfoValuePtr ポインターで指示されるバッファーの最大長。
SQLSMALLINT * StringLengthPtr 出力 希望の情報を戻すことができるバイトの総数をこの関数が戻す場所を指すポインター。ストリング出力の場合、このサイズには NULL 終了文字が含まれません。

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

使用法

InfoType の有効値のリストと、 SQLGetInfo() がその値に戻す情報に関する説明については、 『SQLGetInfo によって戻される情報』を参照してください。

DB2 CLI バージョン 5 の情報タイプの数は、名前変更されました。リストについては、SQLGetInfo() の InfoTypes の変更を参照してください。 『SQLGetInfo によって戻される情報』のリストには、古い値と新しい値が両方記載されています。

SQLGetInfo によって戻される情報

注:DB2 CLI は、この表の InfoType ごとに値を返します。 InfoType が適用されていなかったりサポートされていない場合、結果は戻りタイプに従属します。戻りタイプと結果の関係は以下のとおりです。
  • 'Y' または 'N' を含む文字ストリングの場合は、"N" が返されます。
  • 'Y' または 'N' 以外の値だけを含む文字ストリングの場合は、空ストリングが返されます。
  • 16 ビット整数の場合は、0 (ゼロ) が返されます。
  • 32 ビット整数の場合は、0 (ゼロ) が返されます。
  • 32 ビット・マスクの場合は、0 (ゼロ) が返されます。

SQL_ACCESSIBLE_PROCEDURES (ストリング)
文字ストリング "Y" は、関数 SQLProcedures() で返されるプロシージャーをすべて実行できることを示します。 "N" は、実行できないプロシージャーが返されている可能性があることを示します。

SQL_ACCESSIBLE_TABLES (ストリング)
文字ストリング "Y" は、ユーザーが、関数 SQLTables() で返されるすべての表に対する SELECT 特権を保証されることを示します。 "N" は、アクセスできない表が返されている可能性があることを示します。

SQL_ACTIVE_ENVIRONMENTS (16 ビット整数)
この InfoType は、SQL_MAX_CONCURRENT_ACTIVITIES に置き換えられています。

DB2 CLI ドライバーがサポートできる活動環境の最大数。制限値が指定されていないか不明である場合、この値はゼロに設定されます。

SQL_AGGREGATE_FUNCTIONS (32 ビット・マスク)
総計機能のビット・マスク列挙サポートは以下のとおりです。

SQL_ALTER_DOMAIN (32 ビット・マスク)
DB2 CLI は 0 を返し、ALTER DOMAIN ステートメントがサポートされていないことを示します。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_ACTIVE_CONNECTIONS (16 ビット整数)
この InfoType は、SQL_MAX_DRIVER_CONNECTIONS に置き換えられています。

アプリケーションごとにサポートされている活動接続の最大数。

ゼロが返された場合は、限度はシステム資源に従属していることを示しています。

db2cli.ini 初期設定ファイルの MAXCONN キーワードまたは SQL_ATTR_MAX_CONNECTIONS 環境 / 接続オプションを使用して、接続数の限界を定めることができます。限度がゼロ以外の値に設定されていると、その限界が返されます。

SQL_ACTIVE_STATEMENTS (16 ビット整数)
この InfoType は、SQL_MAX_CONCURRENT_ACTIVITIES に置き換えられています。

接続ごとの活動ステートメントの最大数。

ゼロが返された場合は、限度はデータベース・システムおよび DB2 CLI の資源と限度に従属していることを示しています。

SQL_ALTER_TABLE (32 ビット・マスク)
ALTER TABLE ステートメント中のどの文節を DBMS がサポートしているかを示します。

SQL_ASYNC_MODE (32 ビット無符号整数)
非同期サポートのレベルを示します。

SQL_BATCH_ROW_COUNT (32 ビット・マスク)
行カウントの処理方法が示されます。 DB2 CLI は常に SQL_BRC_ROLLED_UP を返し、連続した INSERT、DELETE、または UPDATE ステートメントの行カウントが 1 つにロールアップされることを示します。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_BATCH_SUPPORT (32 ビット・マスク)
サポートされているバッチのレベルを示します。

SQL_BOOKMARK_PERSISTENCE (32 ビット・マスク)
演算後、ブックマークを有効にしておくべき時を示します。

SQL_CATALOG_LOCATION (16 ビット整数)
修飾表名中の修飾子の位置を示す 16 ビット整数値。 DB2 CLI では、この情報タイプについて常に SQL_CL_START が返されます。 ODBC はさらに値 SQL_CL_END も定義しますが、DB2 CLI はこの値を返しません。

DB2 CLI の前のバージョンでは、この InfoType は SQL_QUALIFIER_LOCATION でした。

SQL_CATALOG_NAME (ストリング)
文字ストリング "Y" は、サーバーがカタログ名をサポートしていることを示します。 "N" は、カタログ名をサポートしていないことを示します。

SQL_CATALOG_NAME_SEPARATOR (ストリング)
カタログ名とその後に続く修飾名要素の間の区切り記号として使用される文字。

DB2 CLI の前のバージョンでは、この InfoType は SQL_QUALIFIER_NAME_SEPARATOR でした。

SQL_CATALOG_TERM (ストリング)
データベース・ベンダーの修飾子用の用語

ベンダーが、3 部分から成る名前の高位の部分に使用する名前。

DB2 CLI では 3 つの部分の名前がサポートされていないので、長さゼロのストリングが返されます。

DB2 CLI の前のバージョンでは、この InfoType は SQL_QUALIFIER_TERM でした。

SQL_CATALOG_USAGE (32 ビット・マスク)
これは SQL_OWNER_USAGE と同様ですが、カタログ用に使われます。

DB2 CLI の前のバージョンでは、この InfoType は SQL_QUALIFIER_USAGE でした。

SQL_COLLATION_SEQ (ストリング)
照合シーケンスの名前。これは、このサーバーの省略時文字セットにおける省略時の照合名 (たとえば ISO 8859-1 または EBCDIC) を示す文字ストリングです。これが不明であると、空ストリングが返されます。

SQL_COLUMN_ALIAS (ストリング)
列別名がサポートされている場合は "Y" が返され、サポートされていない場合は "N" が返されます。

SQL_CONCAT_NULL_BEHAVIOR (16 ビット整数)
NULL 値の文字データ・タイプの列と非 NULL 値の文字データ・タイプの列の連結をどのように処理するかを示します。


SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_DATE
SQL_CONVERT_DECIMAL
SQL_CONVERT_DOUBLE
SQL_CONVERT_FLOAT
SQL_CONVERT_INTEGER
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_LONGVARBINARY
SQL_CONVERT_LONGVARCHAR
SQL_CONVERT_NUMERIC
SQL_CONVERT_REAL
SQL_CONVERT_SMALLINT
SQL_CONVERT_TIME
SQL_CONVERT_TIMESTAMP
SQL_CONVERT_TINYINT
SQL_CONVERT_VARBINARY
SQL_CONVERT_VARCHAR

(上記はすべて 32 ビット・マスク)
CONVERT スカラー関数を用いて行われる、 InfoType に名前をあげられているタイプのデータの変換で、データ・ソースによってサポートされているものを示しています。ビット・マスクがゼロと等しい場合、データ・ソースは、同じデータ・タイプへの変換を含め、名前のあげられているタイプのデータ変換をサポートしません。

たとえば、データ・ソースが SQL_INTEGER データから SQL_DECIMAL データ・タイプへの変換をサポートしているかどうかを調べるため、アプリケーションは、 SQL_CONVERT_INTEGER の InfoType とともに SQLGetInfo() を呼び出します。アプリケーションは次に、返されたビット・マスクを SQL_CVT_DECIMAL で AND 演算します。結果値が非ゼロであれば、変換はサポートされています。

次のビット・マスクを用いて、どの変換がサポートされているかを判別します。

SQL_CONVERT_FUNCTIONS (32 ビット・マスク)
ドライバーおよび関連データ・ソースによってサポートされているスカラー変換関数を示しています。

DB2 CLI バージョン 2.1.1 およびそれ以降では、char 変数 (CHAR、VARCHAR、 LONG VARCHAR および CLOB) と DOUBLE (または FLOAT) との間における ODBC スカラー変換をサポートしています。

SQL_CORRELATION_NAME (16 ビット整数)
サーバーでサポートされる相関名の程度を示します。

SQL_CREATE_ASSERTION (32 ビット・マスク)
CREATE ASSERTION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、CREATE ASSERTION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_CREATE_CHARACTER_SET (32 ビット・マスク)
CREATE CHARACTER SET ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、CREATE CHARACTER SET ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_CREATE_COLLATION (32 ビット・マスク)
CREATE COLATION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、CREATE COLLATION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_CREATE_DOMAIN (32 ビット・マスク)
CREATE DOMAIN ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、CREATE DOMAIN ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_CREATE_SCHEMA (32 ビット・マスク)
CREATE SCHEMA ステートメント中のどの文節を DBMS がサポートしているかを示します。

SQL_CREATE_TABLE (32 ビット・マスク)
CREATE TABLE ステートメント中のどの文節を DBMS がサポートしているかを示します。

以下のビット・マスクを用いて、どの文節がサポートされているかを示します。

以下のビットは、一時表を作成する能力を指定します。

以下のビットは、列制約を作成する能力を指定します。

以下のビットは、列または表の制約の指定がサポートされている場合に、サポートする制約属性を指定します。

SQL_CREATE_TRANSLATION (32 ビット・マスク)
CREATE TRANSLATION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、CREATE TRANSLATION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_CREATE_VIEW (32 ビット・マスク)
CREATE VIEW ステートメント中のどの文節を DBMS がサポートしているかを示します。

戻り値 0 は、CREATE VIEW ステートメントがサポートされていないことを意味します。

SQL_CURSOR_CLOSE_BEHAVIOR (32 ビット無符号整数)
カーソルがクローズされる時にロックが解放されるかどうかを示します。有効値は以下のとおりです。

一般に、 SQL_CLOSE オプションを指定して関数 SQLFreeStmt() を呼び出したり、 HandleType を SQL_HANDLE_STMT に設定して SQLFreeHandle() を呼び出したりすると、カーソルは明示的にクローズされます。また、(コミットまたはロールバックを出して) トランザクションが終了しても、カーソルがクローズされる場合があります (現在使用中の WITH HOLD 属性に基づく)。

SQL_CURSOR_COMMIT_BEHAVIOR (16 ビット整数)
COMMIT 操作がカーソルにどのような影響を与えるかを示します。値は、以下のとおりです。

SQL_CURSOR_ROLLBACK_BEHAVIOR (16 ビット整数)
ROLLBACK 操作がどのようにカーソルに影響を与えるかを示します。値は、以下のとおりです。

SQL_CURSOR_SENSITIVITY (32 ビット無符号整数)
以下のように、カーソル・センシティビティーのサポートを示します。

SQL_DATA_SOURCE_NAME (ストリング)
SQLConnect() への入力に関するデータ・ソースとして使用される名前。または、SQLDriverConnect() 接続ストリング中の DSN キーワード値。

SQL_DATA_SOURCE_READ_ONLY (ストリング)
文字ストリング "Y" は、データベースを READ ONLY モードに設定することを示し、 "N" は、READ ONLY モードにセットしないことを示します。

SQL_DATABASE_NAME (ストリング)
現在使用中のデータベースの名前。
注:IBM DBMS の SELECT CURRENT SERVER によっても返されます。

SQL_DATETIME_LITERALS (32 ビット無符号整数)
DBMS がサポートする、日時リテラルを示します。 DB2 CLI は常にゼロを返し、日時リテラルをサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DBMS_NAME (ストリング)
アクセスされる DBMS 製品の名前。

たとえば、以下のとおりです。

SQL_DBMS_VER (ストリング)
アクセスされる DBMS 製品のバージョン。書式 'mm.vv.rrrr' のストリング (mm は主バージョン、 vv は副バージョン、および rrrr はリリース)。たとえば、"0r.01.0000" は主バージョン r、副バージョン 1、リリース 0 に変換します。

SQL_DDL_INDEX (32 ビット無符号整数)
索引の作成とドロップのサポートを示します。

SQL_DEFAULT_TXN_ISOLATION (32 ビット・マスク)
サポートされている省略時のトランザクション分離レベル

以下のいずれかのマスクが返されます。

IBM の用語では、

SQL_DESCRIBE_PARAMETER (ストリング)
パラメーターが記述可能であれば "Y"、そうでなければ "N"。

SQL_DM_VER (ストリング)
予約済み。

SQL_DRIVER_HDBC (32 ビット)
DB2 CLI のデータベース・ハンドル

SQL_DRIVER_HDESC (32 ビット)
DB2 CLI の記述子ハンドル

SQL_DRIVER_HENV (32 ビット)
DB2 CLI の環境ハンドル

SQL_DRIVER_HLIB (32 ビット)
予約済み。

SQL_DRIVER_HSTMT (32 ビット)
DB2 CLI のステートメント・ハンドル

ODBC ドライバー・マネージャーのある ODBC 環境では、 InfoType を SQL_DRIVER_HSTMT に設定すると、ドライバー・マネージャーのステートメント・ハンドル (つまり、 SQLAllocStmt() から返されるもの) がアプリケーションから rgbInfoValue の入力に渡されなければなりません。この場合、rgbInfoValue は入力引き数と出力引き数の両方です。 ODBC ドライバー・マネージャーは、マップされた値を返します。 ODBC アプリケーションが DB2 CLI 特定関数 (LOB 関数など) を呼び出したい場合、そのアプリケーションは、DB2 CLI ライブラリーをロードし、オペレーティング・システム呼び出しを発行して希望の関数を呼び出した後でハンドル値をその関数に渡すことにより、その関数にアクセスできます。

SQL_DRIVER_NAME (ストリング)
DB2 CLI インプリメンテーションのファイル名。

SQL_DRIVER_ODBC_VER (ストリング)
ドライバーがサポートする ODBC のバージョン番号。 DB2 CLI は "03.00" を返します。

SQL_DRIVER_VER (ストリング)
CLI ドライバーのバージョン。書式 'mm.vv.rrrr' のストリング (mm は主バージョン、 vv は副バージョン、および rrrr はリリース)。たとえば、"05.01.0000" は主バージョン 5、副バージョン 1、リリース 0 に変換します。

SQL_DROP_ASSERTION (32 ビット無符号整数)
DROP ASSERTION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP ASSERTION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_CHARACTER_SET (32 ビット無符号整数)
DROP CHARACTER SET ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP CHARACTER SET ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_COLLATION (32 ビット無符号整数)
DROP COLLATION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP COLLATION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_DOMAIN (32 ビット無符号整数)
DROP DOMAIN ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP DOMAIN ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_SCHEMA (32 ビット無符号整数)
DROP SCHEMA ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP SCHEMA ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_TABLE (32 ビット無符号整数)
DROP TABLE ステートメント中のどの文節を DBMS がサポートしているかを示します。

SQL_DROP_TRANSLATION (32 ビット無符号整数)
DROP TRANSLATION ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP TRANSLATION ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DROP_VIEW (32 ビット無符号整数)
DROP VIEW ステートメント中のどの文節を DBMS がサポートしているかを示します。 DB2 CLI は常にゼロを返し、DROP VIEW ステートメントはサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_DTC_TRANSITION_COST (32 ビット無符号マスク)
接続への参加プロセスが高価かどうか判別する際に、 Microsoft Transaction Server が使用します。 DB2 CLI は、以下の値を返します。

SQL_DYNAMIC_CURSOR_ATTRIBUTES1 (32 ビット・マスク)
DB2 CLI がサポートする動的カーソルの属性を示します (サブセット 1 / 2)。

SQL_DYNAMIC_CURSOR_ATTRIBUTES2 (32 ビット・マスク)
DB2 CLI がサポートする動的カーソルの属性を示します (サブセット 2 / 2)。

SQL_EXPRESSIONS_IN_ORDERBY (ストリング)
文字ストリング "Y" は、データベース・サーバーが ORDER BY リストの式の DIRECT 仕様をサポートしていることを示し、 "N" は、そのサポートがないことを示します。

SQL_FETCH_DIRECTION (32 ビット・マスク)
サポートされている取り出し方向。

次のビット・マスクとフラグを用いて、どのオプションがサポートされているかを判別します。

SQL_FILE_USAGE (16 ビット整数)
単一階層のドライバーが、データ・ソース内のファイルをどのように直接扱うかを示します。 DB2 CLI ドライバーは単一階層のドライバーではないため、常に SQL_FILE_NOT_SUPPORTED を返します。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 (32 ビット・マスク)
DB2 CLI がサポートする転送専用カーソルの属性を示します (サブセット 1 / 2)。

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 (32 ビット・マスク)
DB2 CLI がサポートする転送専用カーソルの属性を示します (サブセット 2 / 2)。

SQL_GETDATA_EXTENSIONS (32 ビット・マスク)
SQLGetData() 関数に対する拡張がサポートされているかどうかを示します。 DB2 CLI では、現在以下の拡張が識別されサポートされています。

ODBC はさらに、DB2 CLI が返さない以下の拡張機能を定義します。

SQL_GROUP_BY (16 ビット整数)
サーバーでサポートされる GROUP BY 文節の程度を示します。

SQL_IDENTIFIER_CASE (16 ビット整数)
オブジェクト名 (たとえば、表名) の大文字小文字の区別を示します。

値は、以下のとおりです。

注:IBM DBMS の識別子名は大文字小文字の区別がありません。

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

SQL_INDEX_KEYWORDS (32 ビット・マスク)
サポートされる、CREATE INDEX ステートメント中のキーワードを示します。

CREATE INDEX ステートメントがサポートされることを確認するため、アプリケーションは SQLGetInfo() を、 SQL_DLL_INDEX InfoType を指定して呼び出すことができます。

SQL_INFO_SCHEMA_VIEWS (32 ビット・マスク)
サポートされる、INFORMATIONAL_SCHEMA 中の視点を示します。 DB2 CLI は常にゼロを返し、INFORMATIONAL_SCHEMA 中の視点をサポートしません。

ODBC はさらに、DB2 CLI が返さない以下の値を定義します。

SQL_INSERT_STATEMENT (32 ビット・マスク)
INSERT ステートメントのサポートを示します。

SQL_INTEGRITY (ストリング)
文字ストリング "Y" は SQL89 および X/Open XPG4 組み込み SQL でデータ・ソースが保全性拡張機能 (IEF) をサポートしていることを示し、 "N" はそのサポートがないことを示します。

DB2 CLI の前のバージョンでは、この InfoType は SQL_ODBC_SQL_OPT_IEF でした。

SQL_KEYSET_CURSOR_ATTRIBUTES1 (32 ビット・マスク)
DB2 CLI がサポートするキー・セット・カーソルの属性を示します (サブセット 1 / 2)。

SQL_KEYSET_CURSOR_ATTRIBUTES2 (32 ビット・マスク)
DB2 CLI がサポートするキー・セット・カーソルの属性を示します (サブセット 2 / 2)。

SQL_KEYWORDS (ストリング)
これは DBMS で、予約語に関する ODBC のリストにないすべてのキーワード のストリングです。

SQL_LIKE_ESCAPE_CLAUSE (ストリング)
LIKE 述部のメタキャラクター・パーセントと下線について、エスケープ文字がサポートされているかどうかを示す文字ストリング。

SQL_LOCK_TYPES (32 ビット・マスク)
予約済みオプション。ビット・マスクにはゼロが返されます。

SQL_MAX_ASYNC_CONCURRENT_STATEMENTS (32 ビット・無符号整数)
DB2 CLI が特定の接続でサポートできる、非同期モードにある活動状態の並行ステートメントの最大数。制限値が指定されていないか不明である場合、この値はゼロです。

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

SQL_MAX_CATALOG_NAME_LEN (16 ビット整数)
データ・ソース内のカタログ名の最大長。最大長がないか不明である場合、この値はゼロです。

DB2 CLI の前のバージョンでは、この fInfoType は SQL_MAX_QUALIFIER_NAME_LEN でした。

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_COLUMNS_IN_TABLE (16 ビット整数)
サーバーが基本表でサポートする列の最大数を示します。限度がない場合はゼロです。

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

DB2 CLI の前のバージョンでは、この InfoType は SQL_ACTIVE_ENVIRONMENTS でした。

SQL_MAX_CURSOR_NAME_LEN (16 ビット整数)
カーソル名の最大長 (バイト単位)。最大長がないか不明である場合、この値はゼロです。

SQL_MAX_DRIVER_CONNECTIONS (16 ビット整数)
アプリケーションごとにサポートされている活動接続の最大数。

ゼロが返された場合は、限度はシステム資源に従属していることを示しています。

db2cli.ini 初期設定ファイルの MAXCONN キーワードまたは SQL_ATTR_MAX_CONNECTIONS 環境 / 接続オプションを使用して、接続数の限界を定めることができます。限度がゼロ以外の値に設定されていると、その限界が返されます。

DB2 CLI の前のバージョンでは、この InfoType は SQL_ACTIVE_CONNECTIONS でした。

SQL_MAX_IDENTIFIER_LEN (16 ビット整数)
ユーザー定義名に対してデータ・ソースがサポートする最大サイズ (文字単位)。

SQL_MAX_INDEX_SIZE (32 ビット無符号整数)
サーバーが索引中の結合列のためにサポートする最大サイズをバイト単位で示します。限度がない場合はゼロです。

SQL_MAX_OWNER_NAME_LEN (16 ビット整数)
この fInfoType は、SQL_MAX_SCHEMA_NAME_LEN に置き換えられています。

スキーマ修飾子名の最大長 (バイト単位)。

SQL_MAX_PROCEDURE_NAME_LEN (16 ビット整数)
プロシージャー名の最大長 (バイト単位)。

SQL_MAX_QUALIFIER_NAME_LEN (16 ビット整数)
この fInfoType は、SQL_MAX_CATALOG_NAME_LEN に置き換えられています。

カタログ修飾子名の最大長。 3 つの部分から成る表名の最初の部分 (バイト単位)。

SQL_MAX_ROW_SIZE (32 ビット無符号整数)
サーバーが基本表の単一の行でサポートする最大長をバイト単位で指定します。限度がない場合はゼロです。

SQL_MAX_ROW_SIZE_INCLUDES_LONG (ストリング)
SQL_MAX_ROW_SIZE InfoType によって返される値に製品特定の長ストリング・データ・タイプが組み込まれることを示す場合は、 "Y" に設定します。それ以外は、"N" に設定します。

SQL_MAX_SCHEMA_NAME_LEN (16 ビット整数)
スキーマ修飾子名の最大長 (バイト単位)。

DB2 CLI の前のバージョンでは、この fInfoType は SQL_MAX_OWNER_NAME_LEN でした。

SQL_MAX_STATEMENT_LEN (32 ビット無符号整数)
SQL ステートメント・ストリングの最大長をバイト単位で示します (ステートメント内の空白の数を含む)。

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

SQL_MAX_TABLES_IN_SELECT (16 ビット整数)
<query specification> 中の FROM 文節に使用できる表名の最大数を示します。

SQL_MAX_USER_NAME_LEN (16 ビット整数)
<user identifier> で使用できる最大サイズを示します (バイト単位)。

SQL_MULT_RESULT_SETS (ストリング)
文字ストリング "Y" は、データベースが複数の結果セットをサポートしていることを示し、 "N" はそれをサポートしていないことを示します。

SQL_MULTIPLE_ACTIVE_TXN (ストリング)
文字ストリング "Y" は、複数の接続に関する活動トランザクションを持つことができることを示し、 "N" は、一度に 1 つの接続だけが活動トランザクションを持つことができることを示します。

DB2 CLI は、調整済み分散作業単位 (CONNECT TYPE 2) 接続の場合は "N" を返し (トランザクションまたは作業単位がすべての接続にわたるため)、他のすべての接続の場合は "Y" を返します。

SQL_NEED_LONG_DATA_LEN (ストリング)
ODBC を使用するために予約されている文字ストリング。常に、"N" が戻されます。

SQL_NON_NULLABLE_COLUMNS (16 ビット整数)
ヌル不可列がサポートされているかどうかを示します。

SQL_NULL_COLLATION (16 ビット整数)
リスト中で NULL がソートされるかどうかを示します。

SQL_NUMERIC_FUNCTIONS (32 ビット・マスク)
サポートされている ODBC スカラー数値関数を示します。この関数は、 ベンダー・エスケープ文節の使用に記述されている ODBC ベンダー・エスケープ・シーケンスとともに使用するよう意図されています。

次のビット・マスクを用いて、どの数値関数がサポートされているかを示します。

SQL_ODBC_API_CONFORMANCE (16 ビット整数)
ODBC 適合性のレベル。

SQL_ODBC_INTERFACE_CONFORMANCE (32 ビット無符号整数)
DB2 CLI ドライバーが準拠している ODBC 3.0 インターフェースのレベルを示します。

SQL_SCHEMA_TERM (ストリング)
データベース・ベンダーのスキーマ (所有者) 用の用語。

DB2 CLI の前のバージョンでは、この InfoType は SQL_OWNER_TERM でした。

SQL_SCHEMA_USAGE (32 ビット・マスク)
SQL ステートメントの実行時に、関連したスキーマ (所有者) のあるステートメントのタイプを示します。スキーマ修飾子 (所有者) は以下のとおりです。

DB2 CLI の前のバージョンでは、この InfoType は SQL_OWNER_USAGE でした。

SQL_ODBC_SAG_CLI_CONFORMANCE (16 ビット整数)
SQL アクセス・グループ (SAG) CLI 仕様の関数の適合性。

値は、以下のとおりです。

SQL_ODBC_SQL_CONFORMANCE (16 ビット整数)
値は、以下のとおりです。

上記の 3 タイプの ODBC SQL 文法の定義については、 ODBC 3.0 Software Development Kit and Programmer's Reference を参照してください。

SQL_ODBC_SQL_OPT_IEF (ストリング)
この InfoType は、SQL_INTEGRITY に置き換えられています。

文字ストリング "Y" は SQL89 および X/Open XPG4 組み込み SQL でデータ・ソースが保全性拡張機能 (IEF) をサポートしていることを示し、 "N" はそのサポートがないことを示します。

SQL_ODBC_VER (ストリング)
ドライバー・マネージャーがサポートする ODBC のバージョン番号。

DB2 CLI はストリング "03.01.0000" を返します。

SQL_OJ_CAPABILITIES (32 ビット・マスク)
サポートされている外部結合タイプを列挙する 32 ビット・マスク。

ビット・マスクは以下のとおりです。

SQL_ORDER_BY_COLUMNS_IN_SELECT (ストリング)
ORDER BY 文節の列を選択リストに入れる必要がある場合は "Y" に設定してください。必要がない場合は "N" に設定してください。

SQL_OUTER_JOINS (ストリング)
以下の文字ストリングは、以下の意味で使用されています。

(ベンダー・エスケープ文節の使用を参照してください。)

SQL_OWNER_TERM (ストリング)
この InfoType は、SQL_SCHEMA_TERM に置き換えられています。

データベース・ベンダーのスキーマ (所有者) 用の用語。

SQL_OWNER_USAGE (32 ビット・マスク)
この InfoType は、SQL_SCHEMA_USAGE に置き換えられています。

SQL ステートメントの実行時に、関連したスキーマ (所有者) のあるステートメントのタイプを示します。スキーマ修飾子 (所有者) は以下のとおりです。

SQL_PARAM_ARRAY_ROW_COUNTS (32 ビット無符号整数)
パラメーター化実行における行カウントの使用可能度を示します。

SQL_PARAM_ARRAY_SELECTS (32 ビット無符号整数)
パラメーター化実行における結果セットの使用可能度を示します。

SQL_POS_OPERATIONS (32 ビット・マスク)
予約済みオプション。ビット・マスクにはゼロが返されます。

SQL_POSITIONED_STATEMENTS (32 ビット・マスク)
定位置 UPDATE および定位置 DELETE ステートメントがサポートされている程度を示します。

SQL_PROCEDURE_TERM (ストリング)
データベース・ベンダーがプロシージャー用に使用している名前。

SQL_PROCEDURES (ストリング)
文字ストリング "Y" は、データ・ソースがプロシージャーをサポートしていて、 DB2 CLI が ストアード・プロシージャーの使用で指定されている ODBC プロシージャー呼び出し構文をサポートしていることを示します。 "N" は、サポートされていないことを示します。

SQL_QUALIFIER_LOCATION (16 ビット整数)
この InfoType は、 SQL_CATALOG_LOCATION に置き換えられています。

修飾表名中の修飾子の位置を示す 16 ビット整数値。 DB2 CLI では、この情報タイプについて常に SQL_QL_START が返されます。

SQL_QUALIFIER_NAME_SEPARATOR (ストリング)
カタログ名とその後に続く修飾名要素の間の区切り記号として使用される文字。

この InfoType は、SQL_CATALOG_NAME_SEPARATOR に置き換えられています。

SQL_QUALIFIER_TERM (ストリング)
データベース・ベンダーの修飾子用の用語

ベンダーが、3 部分から成る名前の高位の部分に使用する名前。

DB2 CLI では 3 つの部分の名前がサポートされていないので、長さゼロのストリングが返されます。

この InfoType は、SQL_CATALOG_TERM に置き換えられています。

SQL_QUALIFIER_USAGE (32 ビット・マスク)
この fInfoType は、SQL_CATALOG_USAGE に置き換えられています。

これは SQL_OWNER_USAGE と同様ですが、カタログ用に使われます。

SQL_QUOTED_IDENTIFIER_CASE (16 ビット整数)
以下の値を返します。

これを、(引用符なし) 識別子がシステム・カタログに格納される方法を判別するのに使用される、 SQL_IDENTIFIER_CASE InfoType と対比させてください。

SQL_ROW_UPDATES (ストリング)
文字ストリング "Y" は、同一列を複数回取り出した際、その間に変更が検出されたことを示し、"N" は、変更が検出されなかったことを示します。

SQL_SCROLL_CONCURRENCY (32 ビット・マスク)
カーソル用にサポートされている並行性オプションを示します。

以下のビット・マスクとフラグを使って、どのオプションがサポートされているかを判別します。

DB2 CLI は、SQL_SCCO_LOCK を戻します。これは、ロックのレベルについて、行を確実に更新できるもののうち最低レベルのものが使用されていることを示します。

SQL_SCROLL_OPTIONS (32 ビット・マスク)
スクロール可能カーソル用にサポートされているスクロール・オプション。

以下のビット・マスクとフラグを使って、どのオプションがサポートされているかを判別します。

スクロール可能カーソルについて詳しくは、スクロール可能カーソルを参照してください。

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

SQL_SERVER_NAME (ストリング)
DB2 インスタンスの名前。これは SQL_DATA_SOURCE_NAME (データベース・サーバーの実際の名前) とは対照的です。 (DBMS の中には、実際のデータベースのサーバー名と違う名前を CONNECT 接続に指定するものもあります。)

SQL_SPECIAL_CHARACTERS (ストリング)
a〜z、A〜Z、0〜9、および _ に加えて、区切り識別子以外に使えるすべての文字が含まれています。

SQL_SQL_CONFORMANCE (32 ビット無符号整数)
サポートしている SQL-92 のレベルを示します。

SQL_SQL92_DATETIME_FUNCTIONS (32 ビット・マスク)
DB2 CLI およびデータ・ソースがサポートする日時スカラー関数を示します。

SQL_SQL92_FOREIGN_KEY_DELETE_RULE (32 ビット・マスク)
DELETE ステートメント中の外部キーに対してサポートされる規則 (SQL-92 により定義) を示します。

SQL_SQL92_FOREIGN_KEY_UPDATE_RULE (32 ビット・マスク)
UPDATE ステートメント中の外部キーに対してサポートされる規則 (SQL-92 により定義) を示します。

SQL_SQL92_GRANT (32 ビット・マスク)
GRANT ステートメント中でサポートされる文節 (SQL-92 により定義) を示します。

SQL_SQL92_NUMERIC_VALUE_FUNCTIONS (32 ビット・マスク)
DB2 CLI およびデータ・ソースがサポートする数値スカラー関数 (SQL-92 により定義) を示します。

SQL_SQL92_PREDICATES (32 ビット・マスク)
SELECT ステートメント中でサポートされる述部 (SQL-92 により定義) を示します。

SQL_SQL92_RELATIONAL_JOIN_OPERATORS (32 ビット・マスク)
SELECT ステートメント中でサポートされる関係結合演算子 (SQL-92 により定義) を示します。

SQL_SQL92_REVOKE (32 ビット・マスク)
REVOKE ステートメント中でデータ・ソースがサポートする文節 (SQL-92 により定義) を示します。

SQL_SQL92_ROW_VALUE_CONSTRUCTOR (32 ビット・マスク)
SELECT ステートメント中でサポートされる行値コンストラクター式 (SQL-92 により定義) を示します。

SQL_SQL92_STRING_FUNCTIONS (32 ビット・マスク)
DB2 CLI およびデータ・ソースがサポートするストリング・スカラー関数 (SQL-92 により定義) を示します。

SQL_SQL92_VALUE_EXPRESSIONS (32 ビット・マスク)
サポートされる値式 (SQL-92 により定義) を示します。

SQL_SQL92_STANDARD_CLI_CONFORMANCE (32 ビット・マスク)
DB2 CLI が準拠している 1 つまたは複数の CLI 標準を示します。

SQL_STATIC_CURSOR_ATTRIBUTES1 (32 ビット・マスク)
DB2 CLI がサポートする静的カーソルの属性を示します (サブセット 1 / 2)。

SQL_STATIC_CURSOR_ATTRIBUTES2 (32 ビット・マスク)
DB2 CLI がサポートする静的カーソルの属性を示します (サブセット 2 / 2)。

SQL_STATIC_SENSITIVITY (32 ビット・マスク)
アプリケーションが定位置更新や削除によって加えた変更を、そのアプリケーションが検出できるかどうかを示します。

SQL_STRING_FUNCTIONS (32 ビット・マスク)
どのストリング関数がサポートされているかを示します。

次のビット・マスクを用いて、どのストリング関数がサポートされているかを示します。

アプリケーションが、string_exp1、string_exp2、 および start 引き数を指定した LOCATE スカラー関数を呼び出せる場合は、 SQL_FN_STR_LOCATE ビット・マスクが返されます。アプリケーションが呼び出せるのが、 string_exp1 および string_exp2 引き数を指定した LOCATE スカラー関数だけである場合は、 SQL_FN_STR_LOCATE_2 ビット・マスクが返されます。 LOCATE スカラー関数が完全にサポートされている場合は、両方のビット・マスクが返されます。

SQL_SUBQUERIES (32 ビット・マスク)
副照会をサポートしている述部を示します。

SQL_SYSTEM_FUNCTIONS (32 ビット・マスク)
どのスカラー・システム関数がサポートされているかを示します。

以下のビット・マスクを用いて、どのスカラー・システム関数がサポートされているかを示します。

注:これらの関数は、 ODBC のエスケープ・シーケンスと一緒に使用するためのものです。

SQL_TABLE_TERM (ストリング)
データベース・ベンダーの表に対する用語

SQL_TIMEDATE_ADD_INTERVALS (32 ビット・マスク)
特殊な ODBC システム関数 TIMESTAMPADD がサポートされているかどうか、および、サポートされている場合はサポートされている間隔を示します。

以下のビット・マスクを用いて、どの間隔がサポートされているかを示します。

SQL_TIMEDATE_DIFF_INTERVALS (32 ビット・マスク)
特殊な ODBC システム関数 TIMESTAMPDIFF がサポートされているかどうか、および、サポートされている場合はサポートされている間隔を示します。

以下のビット・マスクを用いて、どの間隔がサポートされているかを示します。

SQL_TIMEDATE_FUNCTIONS (32 ビット・マスク)
どの日時関数がサポートされているかを示します。

以下のビット・マスクを用いて、どの日時関数がサポートされているかを示します。

注:これらの関数は、 ODBC のエスケープ・シーケンスと一緒に使用するためのものです。

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

SQL_TXN_ISOLATION_OPTION (32 ビット・マスク)
現在接続中のデータベース・サーバーで使用できるトランザクション分離レベル。

以下のマスクとフラグを用いて、どのオプションがサポートされているかを示します。

個々のレベルに関する説明は、SQL_DEFAULT_TXN_ISOLATION を参照してください。

SQL_UNION (32 ビット・マスク)
サーバーが UNION 演算子をサポートしているかどうかを示します。

SQL_U_UNION_ALL が設定されている場合は、SQL_U_UNION です。

SQL_USER_NAME (ストリング)
特定のデータベースで使用されるユーザー名。これは SQLConnect() 呼び出しで指定される識別子です。

SQL_XOPEN_CLI_YEAR (ストリング)
該当バージョンのドライバーが完全に準拠している X/Open 仕様の資料の年度を示します。

戻りコード

診断

表 112. SQLGetInfo SQLSTATE
SQLSTATE 説明 解説
01004 データが切り捨てられました。 要求された情報がストリングとして戻され、このストリングの長さは <BufferLength に指定されているアプリケーション・バッファーの長さを超過しています。引き数 StringLengthPtr には、要求された情報の実際の (切り捨てられていない) 長さが含まれています。 (関数は、SQL_SUCCESS_WITH_INFO を返します。)
08003 接続がクローズされています。 InfoType で要求されているタイプの情報には、オープン接続が必要です。オープン接続が必要ないのは、SQL_ODBC_VER だけです。
40003 08S01 通信リンクに障害が起きました。 アプリケーションとデータ・ソースとの間の通信リンクが、関数の完了する前に失敗しました。
58004 予期しないシステム障害です。 回復不能システム・エラー。
HY001 メモリーの割り振り失敗です。 DB2 CLI は、関数の実行または完了をサポートするのに必要なメモリーを割り振ることができません。
HY090 ストリングまたはバッファー長が無効です。 BufferLength に指定された値は、0 より小さい値でした。
HY096 情報タイプが範囲外です。 無効な InfoType が指定されました。
HYC00 ドライバーが機能していません。 引き数 InfoType に指定された値は、 DB2 CLI とデータ・ソースのどちらかでサポートされていません。

制約

なし。

CLI サンプル ilinfo.c

(ここで完全サンプル ilinfo.c を使用することもできます 。)

/* From the CLI sample ILINFO.C */
/* ... */
        sqlrc = SQLGetInfo(hdbc, SQL_DBMS_VER, imageInfoBuf, 255, &outlen);
        HANDLE_CHECK( SQL_HANDLE_DBC, hdbc, sqlrc, &henv, &hdbc ) ; 	
        printf("            Remote DBMS Version: %s\n", imageInfoBuf);
 
 

参照


[ ページのトップ | 前ページ | 次ページ | 目次 | 索引 ]