次の方法で共有


SQLGetInfo 関数

準拠
導入されたバージョン: ODBC 1.0 標準コンプライアンス: ISO 92

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

構文

  
SQLRETURN SQLGetInfo(  
     SQLHDBC         ConnectionHandle,  
     SQLUSMALLINT    InfoType,  
     SQLPOINTER      InfoValuePtr,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   StringLengthPtr);  

引数

ConnectionHandle
[入力] 接続ハンドル。

InfoType
[入力]情報の種類。

InfoValuePtr
[出力]情報を返すバッファーへのポインター。 要求された InfoType応じて、返される情報は、null で終わる文字列、SQLUSMALLINT 値、SQLUINTEGER ビットマスク、SQLUINTEGER フラグ、SQLUINTEGER バイナリ値、または SQLULEN 値のいずれかになります。

InfoType 引数がSQL_DRIVER_HDESCまたはSQL_DRIVER_HSTMTの場合、InfoValuePtr 引数は入力と出力の両方になります。 (詳細については、この関数の説明で後述するSQL_DRIVER_HDESCまたはSQL_DRIVER_HSTMT記述子を参照してください。

InfoValuePtr が NULL の場合でも、StringLengthPtr は InfoValuePtr指すバッファーで返すことができる合計バイト数 (文字データの null 終端文字を除く) を返します。

BufferLength
[入力]*InfoValuePtr バッファーの長さ。 *InfoValuePtr値が文字列でない場合、または InfoValuePtr が null ポインターの場合BufferLength 引数は無視されます。 ドライバーは、*InfoValuePtrサイズが InfoType に基づいて SQLUSMALLINT または SQLUINTEGER であると想定しています。 *InfoValuePtr が Unicode 文字列の場合 (SQLGetInfoW を呼び出すとき)、BufferLength 引数は偶数である必要があります。そうでない場合は、SQLSTATE HY090 (文字列またはバッファーの長さが無効です) が返されます。

StringLengthPtr
[出力]*InfoValuePtr で返すことができる合計バイト数 (文字データの null 終端文字を除く) を返すバッファーへのポインター。

文字データの場合、返されるバイト数が BufferLength 以上の場合、*InfoValuePtr の情報は BufferLength バイトに切り捨てられ、null 終端文字の長さを引いた値がドライバーによって null で終了されます。

他のすべての種類のデータの場合、BufferLength の値は無視され、ドライバーは InfoType応じて*InfoValuePtr のサイズが SQLUSMALLINT または SQLUINTEGER であると見なします。

返品

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR、またはSQL_INVALID_HANDLE。

診断

SQLGetInfo がSQL_ERRORまたはSQL_SUCCESS_WITH_INFOを返す場合、関連付けられている SQLSTATE 値を取得するには、SQL_HANDLE_DBCの HandleTypeConnectionHandleハンドルを使用して SQLGetDiagRec を呼び出します。 次の表に、SQLGetInfo によって通常返される SQLSTATE 値を示し、この関数のコンテキストでそれぞれについて説明します。"(DM)" という表記は、ドライバー マネージャーによって返される SQLSTATEs の説明の前にあります。 特に明記されていない限り、各 SQLSTATE 値に関連付けられている戻りコードはSQL_ERROR。

SQLSTATE エラー 説明
01000 一般的な警告 ドライバー固有の情報メッセージ。 (関数はSQL_SUCCESS_WITH_INFOを返します。
01004 文字列データ、右切り捨て バッファー *InfoValuePtr が、要求されたすべての情報を返すのに十分な大きさではなかった。 そのため、情報は切り捨てられました。 *StringLengthPtr では、要求された情報の長さが返されます。 (関数はSQL_SUCCESS_WITH_INFOを返します。
08003 接続が開かない (DM) InfoType要求される情報の種類には、開いている接続が必要です。 ODBC によって予約された情報の種類のうち、SQL_ODBC_VERのみが開いている接続なしで返すことができます。
08S01 通信リンクエラー ドライバーとドライバーが接続されたデータ ソース間の通信リンクは、関数の処理が完了する前に失敗しました。
HY000 一般的なエラー 特定の SQLSTATE がなく、実装固有の SQLSTATE が定義されていないエラーが発生しました。 *MessageText バッファー内の SQLGetDiagRec によって返されるエラー メッセージには、エラーとその原因が記述されています。
HY001 メモリ割り当てエラー ドライバーは、関数の実行または完了をサポートするために必要なメモリを割り当てませんでした。
HY010 関数シーケンス エラー (DM) StatementHandle に対して SQLExecute、SQLExecDirect、または SQLMoreResults が呼び出され、SQL_PARAM_DATA_AVAILABLE返されました。 この関数は、すべてのストリーミング パラメーターのデータが取得される前に呼び出されました。
HY013 メモリ管理エラー メモリが不足している可能性があるため、基になるメモリ オブジェクトにアクセスできなかったため、関数呼び出しを処理できませんでした。
HY024 属性値が無効です (DM) InfoType 引数がSQL_DRIVER_HSTMTされ、InfoValuePtr指す値が有効なステートメント ハンドルではありません。

(DM) InfoType 引数がSQL_DRIVER_HDESCされ、InfoValuePtr指す値が有効な記述子ハンドルではありません。
HY090 文字列またはバッファーの長さが無効です (DM) 引数 BufferLength に指定された値が 0 未満でした。

(DM) BufferLength指定された値は奇数で、*InfoValuePtr は Unicode データ型でした。
HY096 情報の種類が範囲外 引数 InfoType に指定された値が、ドライバーでサポートされている ODBC のバージョンに対して無効でした。
HY117 不明なトランザクション状態のため、接続が中断されます。 切断関数と読み取り専用関数のみが許可されます。 (DM) 中断状態の詳細については、「SQLEndTran 関数」を参照してください
HYC00 省略可能なフィールドが実装されていません 引数 InfoType に指定された値は、ドライバーでサポートされていないドライバー固有の値でした。
HYT01 接続のタイムアウト データ ソースが要求に応答する前に、接続タイムアウト期間の有効期限が切れています。 接続タイムアウト期間は、SQL_ATTR_CONNECTION_TIMEOUT SQLSetConnectAttr を使用して設定されます。
IM001 ドライバーは、この関数をサポートしていません (DM) ConnectionHandle対応するドライバーは、関数をサポートしていません。

Comments

現在定義されている情報の種類については、このセクションで後述する「情報の種類」を参照してください。さまざまなデータ ソースを利用するために、より多くの定義が行われると予想されます。 情報の種類の範囲は ODBC によって予約されています。ドライバー開発者は、オープン グループから独自のドライバー固有の使用のために値を予約する必要があります。 SQLGetInfo では、ドライバー定義の InfoType の Unicode 変換やサンキングは実行されません (付録 A: ODBC プログラマ リファレンスODBC エラー コードを参照)。 詳細については、「ドライバー固有のデータ型、記述子の種類、情報の種類、診断型、および属性」を参照してください。 *InfoValuePtr で返される情報の形式は、要求されたインフォタイプによって異なります。 SQLGetInfo は、次の 5 つの形式のいずれかで情報を返します。

  • null で終わる文字列

  • SQLUSMALLINT 値

  • SQLUINTEGER ビットマスク

  • SQLUINTEGER 値

  • SQLUINTEGER バイナリ値

次の各情報の種類の形式は、型の説明に記載されています。 アプリケーションは、*InfoValuePtr で返される値を適宜キャストする必要があります。 アプリケーションが SQLUINTEGER ビットマスクからデータを取得する方法の例については、「コード例」を参照してください。

ドライバーは、次の表で定義されている各情報の種類の値を返す必要があります。 情報の種類がドライバーまたはデータ ソースに適用されない場合、ドライバーは次の表に示す値のいずれかを返します。

情報の種類 Value
文字列 ("Y" または "N") "N"
文字列 ("Y" または "N" ではありません) 空の文字列
SQLUSMALLINT 0
SQLUINTEGER ビットマスクまたは SQLUINTEGER バイナリ値 0L

たとえば、データ ソースがプロシージャをサポートしていない場合、SQLGetInfo は、プロシージャに関連する InfoType の値について、次の表に示す値を返します。

InfoType Value
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM 空の文字列

SQLGetInfo は、 ODBC で使用するために予約されている情報型の範囲内にあるが、ドライバーでサポートされている ODBC の バージョンでは定義されていない InfoType の値の SQLSTATE HY096 (無効な引数値) を返します。 ドライバーが準拠している ODBC のバージョンを確認するために、アプリケーションは、SQL_DRIVER_ODBC_VER情報の種類で SQLGetInfo を呼び出します。 SQLGetInfo は、ドライバー固有の使用のために予約されているが、ドライバーでサポートされていない情報の種類の 範囲内にある InfoType の値の SQLSTATE HYC00 (省略可能な機能は実装されていません) を返します。

SqlGetInfo のすべての呼び出しでは、ドライバー マネージャーのバージョンを返す InfoType がSQL_ODBC_VERされている場合を除き、開いている接続が必要です。

情報の種類

このセクションでは、SQLGetInfo でサポートされる情報の種類を 示します。 情報の種類はカテゴリ別にグループ化され、アルファベット順に一覧表示されます。 ODBC 3*.x* に対して追加または名前変更された情報の種類も一覧表示されます。

ドライバー情報

InfoType 引数の次の値は、アクティブなステートメントの数、データ ソース名、インターフェイス標準コンプライアンス レベルなど、ODBC ドライバーに関する情報を返します。

SQL_ACTIVE_ENVIRONMENTS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_DATA_SOURCE_NAME
SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDBC
SQL_DRIVER_HDESC
SQL_DRIVER_HENV
SQL_DRIVER_HLIB
SQL_DRIVER_HSTMT
SQL_DRIVER_NAME
SQL_DRIVER_ODBC_VER
SQL_DRIVER_VER
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1

SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_FILE_USAGE
SQL_GETDATA_EXTENSIONS
SQL_INFO_SCHEMA_VIEWS
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_DRIVER_CONNECTIONS
SQL_ODBC_INTERFACE_CONFORMANCE
SQL_ODBC_STANDARD_CLI_CONFORMANCE
SQL_ODBC_VER
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_ROW_UPDATES
SQL_SEARCH_PATTERN_ESCAPE
SQL_SERVER_NAME
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2

Note

SQLGetInfo を実装する場合、ドライバーは、サーバーから情報が送信または要求される回数を最小限に抑えることで、パフォーマンスを向上させることができます。

DBMS 製品情報

InfoType 引数の次の値は、DBMS の名前やバージョンなど、DBMS 製品に関する情報を返します。

SQL_DATABASE_NAME
SQL_DBMS_NAME

SQL_DBMS_VER

データ ソース情報

InfoType 引数の次の値は、カーソルの特性やトランザクション機能など、データ ソースに関する情報を返します。

SQL_ACCESSIBLE_PROCEDURES
SQL_ACCESSIBLE_TABLES
SQL_BOOKMARK_PERSISTENCE
SQL_CATALOG_TERM
SQL_COLLATION_SEQ
SQL_CONCAT_NULL_BEHAVIOR
SQL_CURSOR_COMMIT_BEHAVIOR
SQL_CURSOR_ROLLBACK_BEHAVIOR
SQL_CURSOR_SENSITIVITY
SQL_DATA_SOURCE_READ_ONLY
SQL_DEFAULT_TXN_ISOLATION
SQL_DESCRIBE_PARAMETER

SQL_MULT_RESULT_SETS
SQL_MULTIPLE_ACTIVE_TXN
SQL_NEED_LONG_DATA_LEN
SQL_NULL_COLLATION
SQL_PROCEDURE_TERM
SQL_SCHEMA_TERM
SQL_SCROLL_OPTIONS
SQL_TABLE_TERM
SQL_TXN_CAPABLE
SQL_TXN_ISOLATION_OPTION
SQL_USER_NAME

サポートされている SQL

InfoType 引数の次の値は、データ ソースでサポートされている SQL ステートメントに関する情報を返します。 これらの情報の種類で説明されている各機能の SQL 構文は、SQL-92 構文です。 これらの情報の種類では、SQL-92 文法全体が完全に記述されているわけではありません。 代わりに、通常、データ ソースがさまざまなレベルのサポートを提供する文法のこれらの部分について説明します。 具体的には、SQL-92 の DDL ステートメントのほとんどについて説明します。

アプリケーションは、SQL_SQL_CONFORMANCE情報の種類からサポートされている文法の一般的なレベルを決定し、他の情報の種類を使用して、指定された標準コンプライアンス レベルからのバリエーションを決定する必要があります。

SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ALTER_TABLE
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_CATALOG_LOCATION
SQL_CATALOG_NAME
SQL_CATALOG_NAME_SEPARATOR
SQL_CATALOG_USAGE
SQL_COLUMN_ALIAS
SQL_CORRELATION_NAME
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_DDL_INDEX
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA

SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_EXPRESSIONS_IN_ORDERBY
SQL_GROUP_BY
SQL_IDENTIFIER_CASE
SQL_IDENTIFIER_QUOTE_CHAR
SQL_INDEX_KEYWORDS
SQL_INSERT_STATEMENT
SQL_INTEGRITY
SQL_KEYWORDS
SQL_LIKE_ESCAPE_CLAUSE
SQL_NON_NULLABLE_COLUMNS
SQL_OJ_CAPABILITIES
SQL_ORDER_BY_COLUMNS_IN_SELECT
SQL_OUTER_JOINS
SQL_PROCEDURES
SQL_QUOTED_IDENTIFIER_CASE
SQL_SCHEMA_USAGE
SQL_SPECIAL_CHARACTERS
SQL_SQL_CONFORMANCE
SQL_SUBQUERIES
SQL_UNION

SQL の制限

InfoType 引数の次の値は、識別子の最大長や選択リスト内の列の最大数など、SQL ステートメントの識別子と句に適用される制限に関する情報を返します。 制限は、ドライバーまたはデータ ソースによって適用できます。

SQL_MAX_BINARY_LITERAL_LEN
SQL_MAX_CATALOG_NAME_LEN
SQL_MAX_CHAR_LITERAL_LEN
SQL_MAX_COLUMN_NAME_LEN
SQL_MAX_COLUMNS_IN_GROUP_BY
SQL_MAX_COLUMNS_IN_INDEX
SQL_MAX_COLUMNS_IN_ORDER_BY
SQL_MAX_COLUMNS_IN_SELECT
SQL_MAX_COLUMNS_IN_TABLE
SQL_MAX_CURSOR_NAME_LEN

SQL_MAX_IDENTIFIER_LEN
SQL_MAX_INDEX_SIZE
SQL_MAX_PROCEDURE_NAME_LEN
SQL_MAX_ROW_SIZE
SQL_MAX_ROW_SIZE_INCLUDES_LONG
SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_STATEMENT_LEN
SQL_MAX_TABLE_NAME_LEN
SQL_MAX_TABLES_IN_SELECT
SQL_MAX_USER_NAME_LEN

スカラー関数情報

InfoType 引数の次の値は、データ ソースとドライバーでサポートされているスカラー関数に関する情報を返します。 スカラー関数の詳細については、「付録 E: スカラー関数」を参照してください

SQL_CONVERT_FUNCTIONS
SQL_NUMERIC_FUNCTIONS
SQL_STRING_FUNCTIONS
SQL_SYSTEM_FUNCTIONS

SQL_TIMEDATE_ADD_INTERVALS
SQL_TIMEDATE_DIFF_INTERVALS
SQL_TIMEDATE_FUNCTIONS

変換情報

InfoType 引数の次の値は、データ ソースが CONVERT スカラー関数を使用して指定された SQL データ型を変換できる SQL データ型の一覧を返します。

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_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH

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

ODBC 3.x に追加された情報の種類

ODBC 3.x では、 InfoType 引数の次の値が追加されました。

SQL_ACTIVE_ENVIRONMENTS
SQL_AGGREGATE_FUNCTIONS
SQL_ALTER_DOMAIN
SQL_ALTER_SCHEMA
SQL_ANSI_SQL_DATETIME_LITERALS
SQL_ASYNC_DBC_FUNCTIONS
SQL_ASYNC_MODE
SQL_ASYNC_NOTIFICATION
SQL_BATCH_ROW_COUNT
SQL_BATCH_SUPPORT
SQL_CATALOG_NAME
SQL_COLLATION_SEQ
SQL_CONVERT_INTERVAL_DAY_TIME
SQL_CONVERT_INTERVAL_YEAR_MONTH
SQL_CREATE_ASSERTION
SQL_CREATE_CHARACTER_SET
SQL_CREATE_COLLATION
SQL_CREATE_DOMAIN
SQL_CREATE_SCHEMA
SQL_CREATE_TABLE
SQL_CREATE_TRANSLATION
SQL_CURSOR_SENSITIVITY
SQL_DDL_INDEX
SQL_DESCRIBE_PARAMETER
SQL_DM_VER

SQL_DRIVER_AWARE_POOLING_SUPPORTED
SQL_DRIVER_HDESC
SQL_DROP_ASSERTION
SQL_DROP_CHARACTER_SET
SQL_DROP_COLLATION
SQL_DROP_DOMAIN
SQL_DROP_SCHEMA
SQL_DROP_TABLE
SQL_DROP_TRANSLATION
SQL_DROP_VIEW
SQL_DYNAMIC_CURSOR_ATTRIBUTES1
SQL_DYNAMIC_CURSOR_ATTRIBUTES2
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2
SQL_INFO_SCHEMA_VIEWS
SQL_INSERT_STATEMENT
SQL_KEYSET_CURSOR_ATTRIBUTES1
SQL_KEYSET_CURSOR_ATTRIBUTES2
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS
SQL_MAX_IDENTIFIER_LEN
SQL_PARAM_ARRAY_ROW_COUNTS
SQL_PARAM_ARRAY_SELECTS
SQL_STATIC_CURSOR_ATTRIBUTES1
SQL_STATIC_CURSOR_ATTRIBUTES2
SQL_XOPEN_CLI_YEAR

ODBC 3.x で名前が変更された情報の種類

ODBC 3.x では、 InfoType 引数の次の値の名前が変更されました。

古い名前 New Name
SQL_ACTIVE_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
SQL_ACTIVE_STATEMENTS SQL_MAX_CONCURRENT_ACTIVITIES
SQL_MAX_OWNER_NAME_LEN SQL_MAX_SCHEMA_NAME_LEN
SQL_MAX_QUALIFIER_NAME_LEN SQL_MAX_CATALOG_NAME_LEN
SQL_ODBC_SQL_OPT_IEF SQL_INTEGRITY
SQL_OWNER_TERM SQL_SCHEMA_TERM
SQL_OWNER_USAGE SQL_SCHEMA_USAGE
SQL_QUALIFIER_LOCATION SQL_CATALOG_LOCATION
SQL_QUALIFIER_NAME_SEPARATOR SQL_CATALOG_NAME_SEPARATOR
SQL_QUALIFIER_TERM SQL_CATALOG_TERM
SQL_QUALIFIER_USAGE SQL_CATALOG_USAGE

ODBC 3.x で非推奨になった情報の種類

ODBC 3.x では、 InfoType 引数の次の値が非推奨になりました。 ODBC 3.x ドライバーは、ODBC 2.x アプリケーションとの下位互換性のために、これらの情報の種類を引き続きサポートする必要があります。 (これらの型の詳細については、 付録 G: 下位互換性のためのドライバー ガイドラインの SQLGetInfo のサポート

SQL_FETCH_DIRECTION
SQL_LOCK_TYPES
SQL_ODBC_API_CONFORMANCE
SQL_ODBC_SQL_CONFORMANCE

SQL_POS_OPERATIONS
SQL_POSITIONED_STATEMENTS
SQL_SCROLL_CONCURRENCY
SQL_STATIC_SENSITIVITY

情報の種類の説明

次の表は、各情報の種類、導入された ODBC のバージョン、およびその説明をアルファベット順に示しています。

情報の種類 ODBC バージョン 説明
SQL_ACCESSIBLE_PROCEDURES 1.0 ユーザーが SQLProcedures によって返されるすべてのプロシージャを実行できる場合は、文字列 "Y" です。ユーザーが実行できないプロシージャが返される可能性がある場合は "N" です。
SQL_ACCESSIBLE_TABLES 1.0 SQLTables によって返されるすべてのテーブルに対する SELECT 権限がユーザーに保証されている場合は、"Y" という文字列。ユーザーがアクセスできないテーブルが返される可能性がある場合は "N" です。
SQL_ACTIVE_ENVIRONMENTS 3.0 ドライバーがサポートできるアクティブな環境の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。
SQL_AGGREGATE_FUNCTIONS 3.0 集計関数のサポートを列挙する SQLUINTEGER ビットマスク:
SQL_AF_ALL
SQL_AF_AVG
SQL_AF_COUNT
SQL_AF_DISTINCT
SQL_AF_MAX
SQL_AF_MIN
SQL_AF_SUM

SQL-92 エントリ レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_ALTER_DOMAIN 3.0 データ ソースでサポートされている SQL-92 で定義されている ALTER DOMAIN ステートメントの句を列挙する SQLUINTEGER ビットマスク。 SQL-92 完全レベル準拠ドライバーは、常にすべてのビットマスクを返します。 戻り値 "0" は、ALTER DOMAIN ステートメントがサポートされていないことを意味します。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_AD_ADD_DOMAIN_CONSTRAINT = ドメイン制約の追加がサポートされています (フル レベル)
SQL_AD_ADD_DOMAIN_DEFAULT = <alter domain><set domain default 句> がサポートされています (フル レベル)
SQL_AD_CONSTRAINT_NAME_DEFINITION = <制約名定義句> は、ドメイン制約の名前付け (中間レベル) でサポートされています
SQL_AD_DROP_DOMAIN_CONSTRAINT = <ドロップ ドメイン制約句> がサポートされています (フル レベル)
SQL_AD_DROP_DOMAIN_DEFAULT = <alter domain><drop domain default 句> がサポートされています (フル レベル)

次のビットは、ドメインの追加制約がサポートされている場合<にサポートされる<制約>属性>を指定します (SQL_AD_ADD_DOMAIN_CONSTRAINT ビットが設定されます)。
SQL_AD_ADD_CONSTRAINT_DEFERRABLE (フル レベル)
SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE (フル レベル)
SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED (フル レベル)
SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE (フル レベル)
SQL_ALTER_TABLE 2.0 データ ソースでサポートされている ALTER TABLE ステートメントの句を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_AT_ADD_COLUMN_COLLATION = <列> の追加句がサポートされています。列の照合順序を指定するための機能 (フル レベル) (ODBC 3.0)
SQL_AT_ADD_COLUMN_DEFAULT = <列> の追加句がサポートされており、列の既定値 (FIPS 遷移レベル) を指定する機能 (ODBC 3.0)
SQL_AT_ADD_COLUMN_SINGLE = <列> の追加がサポートされています (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_ADD_CONSTRAINT = <列> の追加句がサポートされています。列制約を指定するための機能 (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_ADD_TABLE_CONSTRAINT = <テーブル制約> 句の追加がサポートされています (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_CONSTRAINT_NAME_DEFINITION = <制約名の定義> は、列およびテーブルの制約の名前付けに対してサポートされています (中間レベル) (ODBC 3.0)
SQL_AT_DROP_COLUMN_CASCADE = <ドロップ列> CASCADE がサポートされています (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_DROP_COLUMN_DEFAULT = <列><ドロップ列の既定の句> の変更がサポートされています (中間レベル) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <ドロップ列> RESTRICT がサポートされています (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <ドロップ列> RESTRICT がサポートされています (FIPS 遷移レベル) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <列セット列><の既定の句> の変更がサポートされています (中間レベル) (ODBC 3.0)

次のビットは、 <列またはテーブルの制約の指定がサポートされている場合にサポート制約属性> を指定します (SQL_AT_ADD_CONSTRAINT ビットが設定されています)。
SQL_AT_CONSTRAINT_INITIALLY_DEFERRED (フル レベル) (ODBC 3.0)
SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE (フル レベル) (ODBC 3.0)
SQL_AT_CONSTRAINT_DEFERRABLE (フル レベル) (ODBC 3.0)
SQL_AT_CONSTRAINT_NON_DEFERRABLE (フル レベル) (ODBC 3.0)
SQL_ASYNC_DBC_FUNCTIONS 3.8 ドライバーが接続ハンドルで関数を非同期的に実行できるかどうかを示す SQLUINTEGER 値。

SQL_ASYNC_DBC_CAPABLE = ドライバーは、接続関数を非同期的に実行できます。
SQL_ASYNC_DBC_NOT_CAPABLE = ドライバーは、接続関数を非同期的に実行できません。
SQL_ASYNC_MODE 3.0 ドライバーでの非同期サポートのレベルを示す SQLUINTEGER 値。

SQL_AM_CONNECTION = 接続レベルの非同期実行がサポートされています。 特定の接続ハンドルに関連付けられているすべてのステートメント ハンドルが非同期モードであるか、すべて同期モードです。 同じ接続上の別のステートメント ハンドルが同期モードである間は、接続のステートメント ハンドルを非同期モードにすることはできません。また、その逆も同様です。
SQL_AM_STATEMENT = ステートメント レベルの非同期実行がサポートされています。 接続ハンドルに関連付けられている一部のステートメント ハンドルは非同期モードにできますが、同じ接続上の他のステートメント ハンドルは同期モードです。
SQL_AM_NONE = 非同期モードはサポートされていません。
SQL_ASYNC_NOTIFICATION 3.8 ドライバーが非同期通知をサポートしているかどうかを示す SQLUINTEGER 値。

SQL_ASYNC_NOTIFICATION_CAPABLE = 非同期実行通知は、ドライバーによってサポートされます。
SQL_ASYNC_NOTIFICATION_NOT_CAPABLE = 非同期実行通知は、ドライバーではサポートされていません。

ODBC 非同期操作には、接続レベルの非同期操作とステートメント レベルの非同期操作の 2 つのカテゴリがあります。 ドライバーがSQL_ASYNC_NOTIFICATION_CAPABLEを返す場合は、非同期に実行できるすべての API の通知をサポートする必要があります。
SQL_BATCH_ROW_COUNT 3.0 行数の可用性に関するドライバーの動作を列挙する SQLUINTEGER ビットマスク。 次のビットマスクは、情報の種類と共に使用されます。

SQL_BRC_ROLLED_UP = 連続する INSERT、DELETE、または UPDATE ステートメントの行数は、1 つにロールアップされます。 このビットが設定されていない場合は、ステートメントごとに行数を使用できます。
SQL_BRC_PROCEDURES = 行数 (ある場合) は、ストアド プロシージャでバッチを実行するときに使用できます。 行数が使用可能な場合は、SQL_BRC_ROLLED_UP ビットに応じて、ロールアップまたは個別に使用できます。
SQL_BRC_EXPLICIT = 行数 (ある場合) は、SQLExecute または SQLExecDirect を呼び出してバッチを直接実行するときに使用できます。 行数が使用可能な場合は、SQL_BRC_ROLLED_UP ビットに応じて、ロールアップまたは個別に使用できます。
SQL_BATCH_SUPPORT 3.0 バッチに対するドライバーのサポートを列挙する SQLUINTEGER ビットマスク。 サポートされているレベルを判断するには、次のビットマスクを使用します。

SQL_BS_SELECT_EXPLICIT = ドライバーは、結果セット生成ステートメントを持つことができます明示的なバッチをサポートしています。
SQL_BS_ROW_COUNT_EXPLICIT = ドライバーは、行数生成ステートメントを持つことができます明示的なバッチをサポートしています。
SQL_BS_SELECT_PROC = ドライバーは、結果セットの生成ステートメントを持つことができます明示的なプロシージャをサポートしています。
SQL_BS_ROW_COUNT_PROC = ドライバーは、行数を生成するステートメントを持つことができます明示的なプロシージャをサポートしています。
SQL_BOOKMARK_PERSISTENCE 2.0 ブックマークが保持される操作を列挙する SQLUINTEGER ビットマスク。 フラグと共に次のビットマスクを使用して、ブックマークが保持されるオプションを決定します。

SQL_BP_CLOSE = ブックマークは、アプリケーションが SQL_CLOSE オプションを指定して SQLFreeStmt を呼び出した後、または SQLCloseCursor を呼び出してステートメントに関連付けられたカーソルを閉じた後に有効です。
SQL_BP_DELETE = 行のブックマークは、その行が削除された後に有効です。
SQL_BP_DROP = ブックマークは、アプリケーションがステートメントを削除するために handleType の SQL_HANDLE_STMT で SQLFreeHandle を呼び出した後に有効です。
SQL_BP_TRANSACTION = ブックマークは、アプリケーションがトランザクションをコミットまたはロールバックした後に有効です。
SQL_BP_UPDATE = 行のブックマークは、その行の列 (キー列を含む) が更新された後に有効になります。
SQL_BP_OTHER_HSTMT = 1 つのステートメントに関連付けられたブックマークは、別のステートメントで使用できます。 SQL_BP_CLOSEまたはSQL_BP_DROPを指定しない限り、最初のステートメントのカーソルを開く必要があります。
SQL_CATALOG_LOCATION 2.0 修飾テーブル名内のカタログの位置を示す SQLUSMALLINT 値。

SQL_CL_START
SQL_CL_END
たとえば、\EMPDATA\EMP のように、ディレクトリ (カタログ) 名がテーブル名の先頭にあるため、Xbase ドライバーはSQL_CL_STARTを返します。DBF。 カタログは ADMIN のようにテーブル名の末尾にあるため、ORACLE Server ドライバーはSQL_CL_ENDを返します。EMP@EMPDATA。

SQL-92 完全レベル準拠ドライバーは常にSQL_CL_STARTを返します。 データ ソースでカタログがサポートされていない場合は、値 0 が返されます。 カタログがサポートされているかどうかを判断するために、アプリケーションは、SQL_CATALOG_NAME情報の種類を使用して SQLGetInfo を呼び出します。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_QUALIFIER_LOCATIONから変更されました。
SQL_CATALOG_NAME 3.0 サーバーがカタログ名をサポートしている場合は "Y"、サポートされていない場合は "N" という文字列。

SQL-92 完全レベル準拠ドライバーは常に "Y" を返します。
SQL_CATALOG_NAME_SEPARATOR 1.0 文字列: カタログ名とその後に続く修飾名要素との間の区切り文字としてデータ ソースが定義する文字。

カタログがデータ ソースでサポートされていない場合は、空の文字列が返されます。 カタログがサポートされているかどうかを判断するために、アプリケーションは、SQL_CATALOG_NAME情報の種類を使用して SQLGetInfo を呼び出します。 SQL-92 完全レベル準拠ドライバーは常に "." を返します。

この インフォタイプ は ODBC 3.0 の名前が ODBC 2.0 InfoType SQL_QUALIFIER_NAME_SEPARATORから変更されました。
SQL_CATALOG_TERM 1.0 カタログのデータ ソース ベンダーの名前を含む文字列。たとえば、"database" や "directory" などです。 この文字列は、大文字、小文字、または大文字と小文字を混在させることができます。

カタログがデータ ソースでサポートされていない場合は、空の文字列が返されます。 カタログがサポートされているかどうかを判断するために、アプリケーションは、SQL_CATALOG_NAME情報の種類を使用して SQLGetInfo を呼び出します。 SQL-92 完全レベル準拠ドライバーは常に "catalog" を返します。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_QUALIFIER_TERMから変更されました。
SQL_CATALOG_USAGE 2.0 カタログを使用できるステートメントを列挙する SQLUINTEGER ビットマスク。

カタログを使用できる場所を決定するには、次のビットマスクを使用します。
SQL_CU_DML_STATEMENTS = カタログは、SELECT、INSERT、UPDATEDELETE のすべてのデータ操作言語ステートメントでサポートされ、サポートされている場合は SELECT FOR UPDATE ステートメントと位置指定更新ステートメントと delete ステートメントがサポートされます。
SQL_CU_PROCEDURE_INVOCATION = ODBC プロシージャ呼び出しステートメントではカタログがサポートされています。
SQL_CU_TABLE_DEFINITION = カタログは、CREATE TABLE、CREATE VIEW、ALTER TABLE、DROP TABLEDROP VIEW のすべてのテーブル定義ステートメントでサポートされています。
SQL_CU_INDEX_DEFINITION = カタログは、CREATE INDEX および DROP INDEX のすべてのインデックス定義ステートメントでサポートされています。
SQL_CU_PRIVILEGE_DEFINITION = カタログは、GRANT および REVOKE のすべての特権定義ステートメントでサポートされています。

データ ソースでカタログがサポートされていない場合は、値 0 が返されます。 カタログがサポートされているかどうかを判断するために、アプリケーションは、SQL_CATALOG_NAME情報の種類を使用して SQLGetInfo を呼び出します。 SQL-92 完全レベル準拠ドライバーは、これらのすべてのビットが設定されたビットマスクを常に返します。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_QUALIFIER_USAGEから変更されました。
SQL_COLLATION_SEQ 3.0 照合順序の名前。 これは、このサーバーの既定の文字セットの既定の照合順序の名前を示す文字列です (例: 'ISO 8859-1' または EBCDIC)。 これが不明な場合は、空の文字列が返されます。 SQL-92 完全レベル準拠ドライバーは、常に空でない文字列を返します。
SQL_COLUMN_ALIAS 2.0 データ ソースが列のエイリアスをサポートしている場合は、文字列 "Y" です。それ以外の場合は "N" です。

列の別名は、AS 句を使用して選択リスト内の列に指定できる代替名です。 SQL-92 エントリ レベル準拠ドライバーは常に "Y" を返します。
SQL_CONCAT_NULL_BEHAVIOR 1.0 データ ソースが NULL 値以外の文字データ型列を持つ NULL 値文字データ型列の連結を処理する方法を示す SQLUSMALLINT 値。
SQL_CB_NULL = 結果は NULL 値です。
SQL_CB_NON_NULL = 結果は NULL 以外の値を持つ列を連結したものです。

SQL-92 エントリ レベル準拠ドライバーは常にSQL_CB_NULLを返します。
SQL_CONVERT_BIGINT
SQL_CONVERT_BINARY
SQL_CONVERT_BIT
SQL_CONVERT_CHAR
SQL_CONVERT_GUID
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
1.0 SQLUINTEGER ビットマスク。 ビットマスクは、InfoType で指定された型のデータに対して CONVERT スカラー関数を使用してデータ ソースでサポートされる変換を示します。 ビットマスクが 0 の場合、データ ソースは、同じデータ型への変換を含め、名前付き型のデータからの変換をサポートしません。

たとえば、データ ソースがSQL_BIGINTデータ型へのSQL_INTEGER データの変換をサポートしているかどうかを判断するために、アプリケーションは、SQL_CONVERT_INTEGERの InfoType を使用して SQLGetInfo を呼び出します。 アプリケーションは、 返されたビットマスクとSQL_CVT_BIGINTを使用して AND 操作を実行します。 結果の値が 0 以外の場合、変換がサポートされます。

サポートされる変換を決定するには、次のビットマスクを使用します。
SQL_CVT_BIGINT (ODBC 1.0)
SQL_CVT_BINARY (ODBC 1.0)
SQL_CVT_BIT (ODBC 1.0)
SQL_CVT_GUID (ODBC 3.5)
SQL_CVT_CHAR (ODBC 1.0)
SQL_CVT_DATE (ODBC 1.0)
SQL_CVT_DECIMAL (ODBC 1.0)
SQL_CVT_DOUBLE (ODBC 1.0)
SQL_CVT_FLOAT (ODBC 1.0)
SQL_CVT_INTEGER (ODBC 1.0)
SQL_CVT_INTERVAL_YEAR_MONTH (ODBC 3.0)
SQL_CVT_INTERVAL_DAY_TIME (ODBC 3.0)
SQL_CVT_LONGVARBINARY (ODBC 1.0)
SQL_CVT_LONGVARCHAR (ODBC 1.0)
SQL_CVT_NUMERIC (ODBC 1.0)
SQL_CVT_REAL (ODBC 1.0)
SQL_CVT_SMALLINT (ODBC 1.0)
SQL_CVT_TIME (ODBC 1.0)
SQL_CVT_TIMESTAMP (ODBC 1.0)
SQL_CVT_TINYINT (ODBC 1.0)
SQL_CVT_VARBINARY (ODBC 1.0)
SQL_CVT_VARCHAR (ODBC 1.0)
SQL_CONVERT_FUNCTIONS 1.0 ドライバーと関連するデータ ソースでサポートされるスカラー変換関数を列挙する SQLUINTEGER ビットマスク。

サポートされている変換関数を特定するには、次のビットマスクを使用します。
SQL_FN_CVT_CASTSQL_FN_CVT_CONVERT
SQL_CORRELATION_NAME 1.0 テーブルの関連付け名がサポートされているかどうかを示す SQLUSMALLINT 値。
SQL_CN_NONE = 関連付け名はサポートされていません。
SQL_CN_DIFFERENT = 関連付け名はサポートされていますが、表すテーブルの名前とは異なる必要があります。
SQL_CN_ANY = 関連付け名はサポートされており、任意の有効なユーザー定義名を指定できます。

SQL-92 エントリ レベル準拠ドライバーは常にSQL_CN_ANYを返します。
SQL_CREATE_ASSERTION 3.0 データ ソースでサポートされている、SQL-92 で 定義されている CREATE ASSERTION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CA_CREATE_ASSERTION

次のビットは、制約属性を明示的に指定する機能がサポートされている場合に、サポートされる制約属性を指定します (SQL_ALTER_TABLEおよびSQL_CREATE_TABLE情報の種類を参照してください)。
SQL_CA_CONSTRAINT_INITIALLY_DEFERRED
SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE
SQL_CA_CONSTRAINT_DEFERRABLE
SQL_CA_CONSTRAINT_NON_DEFERRABLE

SQL-92 完全レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。 戻り値 "0" は、CREATE ASSERTION ステートメントがサポートされていないことを意味します。
SQL_CREATE_CHARACTER_SET 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE CHARACTER SET ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

SQL-92 完全レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。 戻り値 "0" は、CREATE CHARACTER SET ステートメントがサポートされていないことを意味します。
SQL_CREATE_COLLATION 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE COLLATION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_CCOL_CREATE_COLLATION

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します。 戻り値 "0" は、CREATE COLLATION ステートメントがサポートされていないことを意味します。
SQL_CREATE_DOMAIN 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE DOMAIN ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CDO_CREATE_DOMAIN = CREATE DOMAIN ステートメントがサポートされています (中間レベル)。
SQL_CDO_CONSTRAINT_NAME_DEFINITION = <制約名の定義> は、ドメイン制約の名前付け (中間レベル) でサポートされています。

次のビットは、列制約を作成する機能を指定します。
SQL_CDO_DEFAULT = ドメイン制約の指定がサポートされています (中間レベル)
SQL_CDO_CONSTRAINT = ドメインの既定値の指定がサポートされています (中間レベル)
SQL_CDO_COLLATION = ドメイン照合順序の指定がサポートされています (フル レベル)

次のビットは、ドメイン制約の指定がサポートされている場合にサポートされる制約属性を指定します (SQL_CDO_DEFAULTが設定されています)。
SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED (フル レベル)
SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE (フル レベル)
SQL_CDO_CONSTRAINT_DEFERRABLE (フル レベル)
SQL_CDO_CONSTRAINT_NON_DEFERRABLE (フル レベル)

戻り値 "0" は、CREATE DOMAIN ステートメントがサポートされていないことを意味します。
SQL_CREATE_SCHEMA 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE SCHEMA ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CS_CREATE_SCHEMA
SQL_CS_AUTHORIZATION
SQL_CS_DEFAULT_CHARACTER_SET

SQL-92 中間レベル準拠ドライバーは、サポートされているSQL_CS_CREATE_SCHEMAとSQL_CS_AUTHORIZATIONオプションを常に返します。 これらは SQL-92 エントリ レベルでもサポートされている必要がありますが、必ずしも SQL ステートメントとしてサポートされるわけではありません。 SQL-92 完全レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_CREATE_TABLE 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE TABLE ステートメントの句を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CT_CREATE_TABLE = CREATE TABLE ステートメントがサポートされています。 (エントリ レベル)
SQL_CT_TABLE_CONSTRAINT = テーブル制約の指定がサポートされています (FIPS 遷移レベル)
SQL_CT_CONSTRAINT_NAME_DEFINITION = <制約名定義> 句は、列制約とテーブル制約の名前付けに対してサポートされています (中間レベル)

次のビットは、一時テーブルを作成する機能を指定します。
SQL_CT_COMMIT_PRESERVE = 削除された行はコミット時に保持されます。 (フル レベル)
SQL_CT_COMMIT_DELETE = コミット時に削除された行が削除されます。 (フル レベル)
SQL_CT_GLOBAL_TEMPORARY = グローバル一時テーブルを作成できます。 (フル レベル)
SQL_CT_LOCAL_TEMPORARY = ローカル一時テーブルを作成できます。 (フル レベル)

次のビットは、列制約を作成する機能を指定します。
SQL_CT_COLUMN_CONSTRAINT = 列制約の指定がサポートされています (FIPS 遷移レベル)
SQL_CT_COLUMN_DEFAULT = 列の既定値の指定がサポートされています (FIPS 遷移レベル)
SQL_CT_COLUMN_COLLATION = 列の照合順序の指定がサポートされています (フル レベル)

次のビットは、列またはテーブルの制約の指定がサポートされている場合に、サポートされる制約属性を指定します。
SQL_CT_CONSTRAINT_INITIALLY_DEFERRED (フル レベル)
SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE (フル レベル)
SQL_CT_CONSTRAINT_DEFERRABLE (フル レベル)
SQL_CT_CONSTRAINT_NON_DEFERRABLE (フル レベル)
SQL_CREATE_TRANSLATION 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE TRANSLATION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_CTR_CREATE_TRANSLATION

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこれらのオプションを返します。 戻り値 "0" は、CREATE TRANSLATION ステートメントがサポートされていないことを意味します。
SQL_CREATE_VIEW 3.0 データ ソースでサポートされている SQL-92 で 定義されている CREATE VIEW ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_CV_CREATE_VIEW
SQL_CV_CHECK_OPTION
SQL_CV_CASCADED
SQL_CV_LOCAL

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

SQL-92 エントリ レベル準拠ドライバーは、サポートされているSQL_CV_CREATE_VIEWとSQL_CV_CHECK_OPTIONオプションを常に返します。

SQL-92 完全レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_CURSOR_COMMIT_BEHAVIOR 1.0 COMMIT 操作がデータ ソース内のカーソルおよび準備されたステートメント (トランザクションをコミットするときのデータ ソースの動作) に与える影響を示す SQLUSMALLINT 値。

この属性の値には、次の設定 (SQL_COPT_SS_PRESERVE_CURSORS) の現在の状態が反映されます。
SQL_CB_DELETE = カーソルを閉じ、準備されたステートメントを削除します。 カーソルをもう一度使用するには、アプリケーションでステートメントを再表示して再実行する必要があります。
SQL_CB_CLOSE = カーソルを閉じます。 準備されたステートメントの場合、アプリケーションは SQLPrepare を再度呼び出さずに、ステートメントで SQLExecute を呼びすことができます。 SQL ODBC ドライバーの既定値は SQL_CB_CLOSE です。 つまり、トランザクションをコミットすると、SQL ODBC ドライバーはカーソルを閉じます。
SQL_CB_PRESERVE = COMMIT 操作の前と同じ位置にカーソルを保持します。 アプリケーションは引き続きデータをフェッチすることも、カーソルを閉じてステートメントを再準備せずに再実行することもできます。
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 ROLLBACK 操作がデータ ソース内のカーソルおよび準備されたステートメントに与える影響を示す SQLUSMALLINT 値。
SQL_CB_DELETE = カーソルを閉じ、準備されたステートメントを削除します。 カーソルをもう一度使用するには、アプリケーションでステートメントを再表示して再実行する必要があります。
SQL_CB_CLOSE = カーソルを閉じます。 準備されたステートメントの場合、アプリケーションは SQLPrepare を再度呼び出さずに、ステートメントで SQLExecute を呼びすことができます。
SQL_CB_PRESERVE = ROLLBACK 操作の前と同じ位置にカーソルを保持します。 アプリケーションは引き続きデータをフェッチすることも、カーソルを閉じてステートメントを再準備せずに再実行することもできます。
SQL_CURSOR_SENSITIVITY 3.0 カーソルの秘密度のサポートを示す SQLUINTEGER 値。
SQL_INSENSITIVE = ステートメント ハンドル上のすべてのカーソルは、同じトランザクション内の他のカーソルによって行われた変更を反映せずに結果セットを表示します。
SQL_UNSPECIFIED = ステートメント ハンドル上のカーソルが、同じトランザクション内の別のカーソルによって結果セットに加えられた変更を表示するかどうかは指定されていません。 ステートメント ハンドル上のカーソルは、そのような変更の一部またはすべてを表示しない場合があります。
SQL_SENSITIVE = カーソルは、同じトランザクション内の他のカーソルによって行われた変更に影響を受けます。

SQL-92 エントリ レベル準拠ドライバーは、サポートされているSQL_UNSPECIFIED オプションを常に返します。

SQL-92 完全レベル準拠ドライバーは、サポートされているSQL_INSENSITIVEオプションを常に返します。
SQL_DATA_SOURCE_NAME 1.0 接続中に使用されたデータ ソース名を持つ文字列。 アプリケーションが SQLConnect を呼び出した場合、これは szDSN 引数の値です。 SQLDriverConnect または SQLBrowseConnect というアプリケーションの場合、これはドライバーに渡される接続文字列の DSN キーワードの値です。 接続文字列に DSN キーワード (DRIVER キーワードが含まれている場合など) が含まれていない場合、これは空の文字列です。
SQL_DATA_SOURCE_READ_ONLY 1.0 文字列。 データ ソースが READ ONLY モードに設定されている場合は "Y"、それ以外の場合は "N" です。

この特性は、データ ソース自体にのみ関係します。データ ソースへのアクセスを有効にするドライバーの特性ではありません。 読み取り/書き込み可能なドライバーは、読み取り専用のデータ ソースで使用できます。 ドライバーが読み取り専用の場合、そのすべてのデータ ソースは読み取り専用で、SQL_DATA_SOURCE_READ_ONLYを返す必要があります。
SQL_DATABASE_NAME 1.0 データ ソースが "database" という名前付きオブジェクトを定義している場合は、使用中の現在のデータベースの名前を持つ文字列。

ODBC 3.x では、この InfoType に対して返される値は、SQL_ATTR_CURRENT_CATALOGの Attribute 引数を指定して SQLGetConnectAttr を呼び出すことによっても返すことができます。
SQL_DATETIME_LITERALS 3.0 データ ソースでサポートされている SQL-92 datetime リテラルを列挙する SQLUINTEGER ビットマスク。 これらは SQL-92 仕様に記載されている datetime リテラルであり、ODBC で定義されている datetime リテラルエスケープ句とは別であることに注意してください。 ODBC datetime リテラルのエスケープ句の詳細については、「日付、時刻、およびタイムスタンプ リテラル」を参照してください

FIPS 遷移レベル準拠ドライバーは、次の一覧のビットのビットマスクの "1" 値を常に返します。 値 "0" は、SQL-92 datetime リテラルがサポートされていないことを意味します。

サポートされているリテラルを判断するには、次のビットマスクを使用します。
SQL_DL_SQL92_DATE
SQL_DL_SQL92_TIME
SQL_DL_SQL92_TIMESTAMP
SQL_DL_SQL92_INTERVAL_YEAR
SQL_DL_SQL92_INTERVAL_MONTH
SQL_DL_SQL92_INTERVAL_DAY
SQL_DL_SQL92_INTERVAL_HOUR
SQL_DL_SQL92_INTERVAL_MINUTE
SQL_DL_SQL92_INTERVAL_SECOND
SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH
SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR
SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE
SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND
SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE
SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND
SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND
SQL_DBMS_NAME 1.0 ドライバーによってアクセスされる DBMS 製品の名前を含む文字列。
SQL_DBMS_VER 1.0 ドライバーによってアクセスされる DBMS 製品のバージョンを示す文字列。 バージョンは ##.##.#### という形式で、最初の 2 桁はメジャー バージョン、次の 2 桁はマイナー バージョン、最後の 4 桁はリリース バージョンです。 ドライバーは、この形式で DBMS 製品バージョンをレンダリングする必要がありますが、DBMS 製品固有のバージョンを追加することもできます。 たとえば、"04.01.0000 Rdb 4.1" などです。
SQL_DDL_INDEX 3.0 インデックスの作成と削除のサポートを示す SQLUINTEGER 値。
SQL_DI_CREATE_INDEX
SQL_DI_DROP_INDEX
SQL_DEFAULT_TXN_ISOLATION 1.0 ドライバーまたはデータ ソースでサポートされている既定のトランザクション分離レベルを示す SQLUINTEGER 値。データ ソースがトランザクションをサポートしていない場合は 0。 トランザクション分離レベルを定義するには、次の用語を使用します。
ダーティ読み取り トランザクション 1 は行を変更します。 トランザクション 2 は、トランザクション 1 が変更をコミットする前に、変更された行を読み取ります。 トランザクション 1 が変更をロールバックした場合、トランザクション 2 は存在しなかったと見なされる行を読み取ります。
反復不可能な読み取り トランザクション 1 は行を読み取ります。 トランザクション 2 では、その行を更新または削除し、この変更をコミットします。 トランザクション 1 が行の再読み取りを試みると、別の行値を受け取るか、行が削除されたことを検出します。
ファントム トランザクション 1 では、検索条件を満たす一連の行が読み取られます。 トランザクション 2 では、検索条件に一致する 1 つ以上の行が (挿入または更新によって) 生成されます。 トランザクション 1 は、行を読み取るステートメントを再実行すると、別の行セットを受け取ります。

データ ソースがトランザクションをサポートしている場合、ドライバーは次のいずれかのビットマスクを返します。
SQL_TXN_READ_UNCOMMITTED = ダーティ読み取り、反復不可能な読み取り、ファントムが可能です。
SQL_TXN_READ_COMMITTED = ダーティ 読み取りはできません。 反復不可能な読み取りとファントムが可能です。
SQL_TXN_REPEATABLE_READ = ダーティ読み取りと繰り返し不可能な読み取りはできません。 ファントムが可能です。
SQL_TXN_SERIALIZABLE = トランザクションはシリアル化可能です。 シリアル化可能なトランザクションでは、ダーティ 読み取り、繰り返し不可能な読み取り、またはファントムは許可されません。
SQL_DESCRIBE_PARAMETER 3.0 文字列: パラメーターを記述できる場合は "Y" です。"N" (そうでない場合)。

SQL-92 完全レベル準拠ドライバーは、DESCRIBE INPUT ステートメントをサポートするため、通常は "Y" を返します。 ただし、これは基になる SQL サポートを直接指定しないため、SQL-92 完全レベル準拠ドライバーであっても、パラメーターの記述はサポートされない可能性があります。
SQL_DM_VER 3.0 ドライバー マネージャーのバージョンを含む文字列。 バージョンは ##.##.#####.## の形式で、次のようになります。
2 桁の最初のセットは、定数SQL_SPEC_MAJORで指定された、ODBC のメジャー バージョンです。
2 桁の 2 桁の 2 番目のセットは、定数SQL_SPEC_MINORで指定されたマイナー ODBC バージョンです。
4 桁の 3 番目のセットは、ドライバー マネージャーのメジャー ビルド番号です。
最後の 4 桁のセットは、ドライバー マネージャーのマイナー ビルド番号です。
Windows 7 ドライバー マネージャーのバージョンは 03.80 です。 Windows 8 Driver Manager のバージョンは 03.81 です。
SQL_DRIVER_AWARE_POOLING_SUPPORTED 3.8 ドライバーがドライバー対応プーリングをサポートしているかどうかを示す SQLUINTEGER 値。 (詳細については、 ドライバー対応の接続プール

SQL_DRIVER_AWARE_POOLING_CAPABLEは、ドライバーがドライバー対応のプーリング メカニズムをサポートできることを示します。
SQL_DRIVER_AWARE_POOLING_NOT_CAPABLEは、ドライバーがドライバー対応のプーリング メカニズムをサポートできないことを示します。

ドライバーはSQL_DRIVER_AWARE_POOLING_SUPPORTEDを実装する必要はありません。ドライバー マネージャーはドライバーの戻り値を受け入れなくなります。
SQL_DRIVER_HDBCSQL_DRIVER_HENV 1.0 引数 InfoType によって決定される、ドライバーの環境ハンドルまたは接続ハンドルである SQLULEN 値。

これらの情報の種類は、ドライバー マネージャーだけで実装されます。
SQL_DRIVER_HDESC 3.0 SQLULEN 値。ドライバー マネージャーの記述子ハンドルによって決定されるドライバーの記述子ハンドル。これは、アプリケーションから *InfoValuePtr の入力に渡す必要があります。 この場合、 InfoValuePtr は入力引数と出力引数の両方です。 *InfoValuePtr で渡される入力記述子ハンドルは、ConnectionHandle で明示的または暗黙的に割り当てられている必要があります。

アプリケーションは、この情報の種類で SQLGetInfo を呼び出す前に、ドライバー マネージャーの記述子ハンドルのコピーを作成して、出力時にハンドルが上書きされないようにする必要があります。

この情報の種類は、ドライバー マネージャーだけで実装されます。
SQL_DRIVER_HLIB 2.0 SQLULEN 値。 Microsoft Windows オペレーティング システムでドライバー DLL を読み込んだときにドライバー マネージャーに返されるロード ライブラリのヒント 、または別のオペレーティング システム上の同等の値。 このハンドルは、SQLGetInfo の呼び出しで指定された接続ハンドルに対してのみ有効です。

この情報の種類は、ドライバー マネージャーだけで実装されます。
SQL_DRIVER_HSTMT 1.0 SQLULEN 値。ドライバー マネージャー ステートメント ハンドルによって決定されるドライバーのステートメント ハンドル。これは、アプリケーションから *InfoValuePtr の入力時に渡す必要があります。 この場合、 InfoValuePtr は入力引数と出力引数の両方です。 *InfoValuePtr で渡される入力ステートメント ハンドルは、引数 ConnectionHandle に割り当てられている必要があります。

アプリケーションは、この情報の種類で SQLGetInfo を呼び出す前に、ドライバー マネージャーのステートメント ハンドルのコピーを作成して、出力時にハンドルが上書きされないようにする必要があります。

この情報の種類は、ドライバー マネージャーだけで実装されます。
SQL_DRIVER_NAME 1.0 データ ソースへのアクセスに使用されるドライバーのファイル名を含む文字列。
SQL_DRIVER_ODBC_VER 2.0 ドライバーがサポートする ODBC のバージョンを含む文字列。 バージョンは ##.## という形式で、最初の 2 桁はメジャー バージョン、次の 2 桁はマイナー バージョンです。 メジャー バージョン番号とマイナー バージョン番号をSQL_SPEC_MAJORおよびSQL_SPEC_MINOR定義します。 このマニュアルで説明されている ODBC のバージョンでは、これらは 3 と 0 であり、ドライバーは "03.00" を返す必要があります。

ODBC ドライバー マネージャーは、既存のアプリケーションの下位互換性を維持するために SQLGetInfo(SQL_DRIVER_ODBC_VER) の戻り値を変更しません。 ドライバーは、返される値を指定します。 ただし、アプリケーションが SQLSetEnvAttr を呼び出して SQL_ATTR_ODBC_VERSION を 3.8 に設定する場合、C データ型の拡張をサポートするドライバーは 3.8 (またはそれ以上) を返す必要があります。 詳細については、「ODBC の C データ型」を参照してください。
SQL_DRIVER_VER 1.0 ドライバーのバージョンと、必要に応じてドライバーの説明を含む文字列。 少なくとも、バージョンは ##.##.#### という形式で、最初の 2 桁はメジャー バージョン、次の 2 桁はマイナー バージョン、最後の 4 桁はリリース バージョンです。
SQL_DROP_ASSERTION 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP ASSERTION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_DA_DROP_ASSERTION

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します。
SQL_DROP_CHARACTER_SET 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP CHARACTER SET ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_DCS_DROP_CHARACTER_SET

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します。
SQL_DROP_COLLATION 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP COLLATION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_DC_DROP_COLLATION

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します。
SQL_DROP_DOMAIN 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP DOMAIN ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

SQL-92 中間レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_DROP_SCHEMA 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP SCHEMA ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

SQL-92 中間レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_DROP_TABLE 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP TABLE ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

FIPS 移行レベルに準拠したドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_DROP_TRANSLATION 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP TRANSLATION ステートメントの句を列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされている句を決定するために使用されます。
SQL_DTR_DROP_TRANSLATION

SQL-92 完全レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します。
SQL_DROP_VIEW 3.0 データ ソースでサポートされている SQL-92 で 定義されている DROP VIEW ステートメントの句を列挙する SQLUINTEGER ビットマスク。

サポートされている句を決定するには、次のビットマスクを使用します。
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

FIPS 移行レベルに準拠したドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 ドライバーでサポートされている動的カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の最初のサブセットが含まれています。2 番目のサブセットについては、SQL_DYNAMIC_CURSOR_ATTRIBUTES2を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA1_NEXT = SQL_FETCH_NEXTの FetchOrientation 引数は、カーソルが動的カーソルの場合に SQLFetchScroll呼び出しでサポートされます。
SQL_CA1_ABSOLUTE = カーソルが動的カーソルの場合、SQLFetchScroll の呼び出しでは、SQL_FETCH_FIRST、SQL_FETCH_LAST、およびSQL_FETCH_ABSOLUTEの FetchOrientation 引数がサポートされます。 (フェッチされる行セットは、現在のカーソル位置とは無関係です)。
SQL_CA1_RELATIVE = SQL_FETCH_PRIORおよびSQL_FETCH_RELATIVEの FetchOrientation 引数は、カーソルが動的カーソルの場合に SQLFetchScroll呼び出しでサポートされます。 (フェッチされる行セットは、現在のカーソル位置によって異なります。これは、順方向専用カーソルではSQL_FETCH_NEXTのみがサポートされているため、SQL_FETCH_NEXTから分離されることに注意してください)。
SQL_CA1_BOOKMARK = SQL_FETCH_BOOKMARKの FetchOrientation 引数は、カーソルが動的カーソルの場合、SQLFetchScroll呼び出しでサポートされます。
SQL_CA1_LOCK_EXCLUSIVE = SQL_LOCK_EXCLUSIVEの LockType 引数は、カーソルが動的カーソルの場合に SQLSetPos呼び出しでサポートされます。
SQL_CA1_LOCK_NO_CHANGE = SQL_LOCK_NO_CHANGEの LockType 引数は、カーソルが動的カーソルの場合、SQLSetPos呼び出しでサポートされます。
SQL_CA1_LOCK_UNLOCK = SQL_LOCK_UNLOCKの LockType 引数は、カーソルが動的カーソルの場合、SQLSetPos呼び出しでサポートされます。
SQL_CA1_POS_POSITION = カーソルが動的カーソルの場合、SQLSetPos呼び出しでは、SQL_POSITIONの Operation 引数がサポートされます。
SQL_CA1_POS_UPDATE = カーソルが動的カーソルの場合、SQLSetPos呼び出しでは、SQL_UPDATEの Operation 引数がサポートされます。
SQL_CA1_POS_DELETE = カーソルが動的カーソルの場合、SQLSetPos呼び出しでは、SQL_DELETEの Operation 引数がサポートされます。
SQL_CA1_POS_REFRESH = カーソルが動的カーソルの場合、SQLSetPos呼び出しでは、SQL_REFRESHの Operation 引数がサポートされます。
SQL_CA1_POSITIONED_UPDATE = カーソルが動的カーソルの場合、UPDATE WHERE CURRENT OF SQL ステートメントがサポートされます。 (SQL-92 エントリ レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します)。
SQL_CA1_POSITIONED_DELETE = カーソルが動的カーソルの場合、DELETE WHERE CURRENT OF SQL ステートメントがサポートされます。 (SQL-92 エントリ レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します)。
SQL_CA1_SELECT_FOR_UPDATE = カーソルが動的カーソルの場合、SELECT FOR UPDATE SQL ステートメントがサポートされます。 (SQL-92 エントリ レベル準拠ドライバーは、常にサポートされているとおりにこのオプションを返します)。
SQL_CA1_BULK_ADD = カーソルが動的カーソルの場合、SQLBulkOperations呼び出しでは、SQL_ADDの Operation 引数がサポートされます。
SQL_CA1_BULK_UPDATE_BY_BOOKMARK = カーソルが動的カーソルの場合、SQLBulkOperations呼び出しでは、SQL_UPDATE_BY_BOOKMARKの Operation 引数がサポートされます。
SQL_CA1_BULK_DELETE_BY_BOOKMARK = カーソルが動的カーソルの場合、SQLBulkOperations呼び出しでは、SQL_DELETE_BY_BOOKMARKの Operation 引数がサポートされます。
SQL_CA1_BULK_FETCH_BY_BOOKMARK = SQL_FETCH_BY_BOOKMARKの Operation 引数は、カーソルが動的カーソルの場合に SQLBulkOperations呼び出しでサポートされます。

SQL-92 中間レベル準拠ドライバーは、埋め込み SQL FETCH ステートメントを通じてスクロール可能なカーソルをサポートするため、通常、サポートされているSQL_CA1_NEXT、SQL_CA1_ABSOLUTE、およびSQL_CA1_RELATIVEオプションを返します。 ただし、これは基になる SQL サポートを直接決定しないため、SQL-92 中間レベル準拠ドライバーの場合でも、スクロール可能なカーソルがサポートされない場合があります。
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 ドライバーでサポートされている動的カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の 2 番目のサブセットが含まれています。最初のサブセットについては、SQL_DYNAMIC_CURSOR_ATTRIBUTES1を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA2_READ_ONLY_CONCURRENCY = 更新が許可されていない読み取り専用の動的カーソルがサポートされます。 (動的カーソルの場合、SQL_ATTR_CONCURRENCY ステートメント属性をSQL_CONCUR_READ_ONLYできます)。
SQL_CA2_LOCK_CONCURRENCY = 行を更新できるようにするために十分なロックの最小レベルを使用する動的カーソル。 (SQL_ATTR_CONCURRENCY ステートメント属性は、動的カーソルに対してSQL_CONCUR_LOCKできます。これらのロックは、SQL_ATTR_TXN_ISOLATION接続属性によって設定されたトランザクション分離レベルと一致している必要があります。
SQL_CA2_OPT_ROWVER_CONCURRENCY = 行のバージョンを比較するオプティミスティック コンカレンシー 制御を使用する動的カーソルがサポートされています。 (SQL_ATTR_CONCURRENCY ステートメント属性は、動的カーソルに対してSQL_CONCUR_ROWVERできます)。
SQL_CA2_OPT_VALUES_CONCURRENCY = 値の比較にオプティミスティック コンカレンシー制御を使用する動的カーソルがサポートされています。 (SQL_ATTR_CONCURRENCY ステートメント属性は、動的カーソルに対してSQL_CONCUR_VALUESできます)。
SQL_CA2_SENSITIVITY_ADDITIONS = 追加された行は動的カーソルに表示されます。カーソルはそれらの行までスクロールできます。 (これらの行がカーソルに追加される場所はドライバーに依存します)。
SQL_CA2_SENSITIVITY_DELETIONS = 削除された行は動的カーソルで使用できなくなり、結果セットに "穴" を残さないでください。動的カーソルが削除された行からスクロールした後、その行に戻ることはできません。
SQL_CA2_SENSITIVITY_UPDATES = 行の更新は動的カーソルに表示されます。動的カーソルがスクロールして更新された行に戻る場合、カーソルによって返されるデータは更新されたデータであり、元のデータではありません。
SQL_CA2_MAX_ROWS_SELECT = SQL_ATTR_MAX_ROWS ステートメント属性は、 カーソルが動的カーソルである場合に SELECT ステートメントに影響します。
SQL_CA2_MAX_ROWS_INSERT = カーソルが動的カーソルの場合、SQL_ATTR_MAX_ROWS ステートメント属性は INSERT ステートメントに影響します。
SQL_CA2_MAX_ROWS_DELETE = カーソルが動的カーソルの場合、SQL_ATTR_MAX_ROWS ステートメント属性は DELETE ステートメントに影響します。
SQL_CA2_MAX_ROWS_UPDATE = SQL_ATTR_MAX_ROWS ステートメント属性は、 カーソルが動的カーソルである場合に UPDATE ステートメントに影響します。
SQL_CA2_MAX_ROWS_CATALOG = SQL_ATTR_MAX_ROWS ステートメント属性は、 カーソルが動的カーソルである場合に CATALOG 結果セットに影響します。
SQL_CA2_MAX_ROWS_AFFECTS_ALL = SQL_ATTR_MAX_ROWS ステートメント属性は、カーソルが動的カーソルの場合、SELECTINSERT、DELETEおよび UPDATE ステートメント、および CATALOG 結果セットに影響します。
SQL_CA2_CRC_EXACT = カーソルが動的カーソルの場合、SQL_DIAG_CURSOR_ROW_COUNT診断フィールドで正確な行数を使用できます。
SQL_CA2_CRC_APPROXIMATE = カーソルが動的カーソルの場合、SQL_DIAG_CURSOR_ROW_COUNT診断フィールドでおおよその行数を使用できます。
SQL_CA2_SIMULATE_NON_UNIQUE = ドライバーは、カーソルが動的カーソルの場合、シミュレートされた位置指定の更新または削除ステートメントが 1 つの行にのみ影響することを保証しません。これを保証するのはアプリケーションの責任です。 (ステートメントが複数の行に影響を与える場合、 SQLExecute または SQLExecDirect が SQLSTATE 01001 [カーソル操作の競合] を返します。この動作を設定するために、アプリケーションは sqlSetStmtAttr を呼び出し、SQL_ATTR_SIMULATE_CURSOR属性を SQL_SC_NON_UNIQUE に設定します。
SQL_CA2_SIMULATE_TRY_UNIQUE = ドライバーは、カーソルが動的カーソルの場合、シミュレートされた位置指定の更新または削除ステートメントが 1 つの行にのみ影響することを保証しようとします。 ドライバーは、一意のキーがない場合など、複数の行に影響を与える可能性がある場合でも、常にこのようなステートメントを実行します。 (ステートメントが複数の行に影響を与える場合、 SQLExecute または SQLExecDirect が SQLSTATE 01001 [カーソル操作の競合] を返します。この動作を設定するために、アプリケーションは sqlSetStmtAttr を呼び出し、SQL_ATTR_SIMULATE_CURSOR属性を SQL_SC_TRY_UNIQUE に設定します。
SQL_CA2_SIMULATE_UNIQUE = ドライバーは、カーソルが動的カーソルの場合、シミュレートされた位置指定の更新または削除ステートメントが 1 つの行にのみ影響することを保証します。 ドライバーが特定のステートメントに対してこれを保証できない場合、 SQLExecDirect または SQLPrepare は SQLSTATE 01001 (カーソル操作の競合) を返します。 この動作を設定するために、アプリケーションは sqlSetStmtAttr を呼び出し、SQL_ATTR_SIMULATE_CURSOR属性を SQL_SC_UNIQUE に設定します。
SQL_EXPRESSIONS_IN_ORDERBY 1.0 データ ソースが ORDER BY リストの式をサポートしている場合は、文字列 "Y" です。"N" でない場合は "N" です。
SQL_FILE_USAGE 2.0 単一層ドライバーがデータ ソース内のファイルを直接処理する方法を示す SQLUSMALLINT 値。
SQL_FILE_NOT_SUPPORTED = ドライバーは単一層ドライバーではありません。 たとえば、ORACLE ドライバーは 2 層ドライバーです。
SQL_FILE_TABLE = 単一層ドライバーは、データ ソース内のファイルをテーブルとして扱います。 たとえば、Xbase ドライバーは、各 Xbase ファイルをテーブルとして扱います。
SQL_FILE_CATALOG = 単一層ドライバーは、データ ソース内のファイルをカタログとして扱います。 たとえば、Microsoft Access ドライバーは、各 Microsoft Access ファイルを完全なデータベースとして扱います。

アプリケーションでは、これを使用して、ユーザーがデータを選択する方法を決定できます。 たとえば、Xbase ユーザーはデータをファイルに格納していると考えることがよくありますが、ORACLE と Microsoft Access のユーザーは通常、データをテーブルに格納していると考えます。

ユーザーが Xbase データ ソースを選択すると、アプリケーションで [Windows ファイルを開く ] 共通ダイアログ ボックスが表示されます。ユーザーが Microsoft Access または ORACLE データ ソースを選択すると、アプリケーションにカスタム の [テーブル の選択] ダイアログ ボックスが表示されます。
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 3.0 ドライバーでサポートされている前方専用カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の最初のサブセットが含まれています。2 番目のサブセットについては、SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA1_NEXT
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES1を参照してください (説明では"動的カーソル" の場合は "前方専用カーソル" に置き換える)。
SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 3.0 ドライバーでサポートされている前方専用カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の 2 番目のサブセットが含まれています。最初のサブセットについては、SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES2を参照してください (説明では"動的カーソル" の "前方専用カーソル" に置き換える)。
SQL_GETDATA_EXTENSIONS 2.0 SQLGetData の拡張機能を列挙する SQLUINTEGER ビットマスク。

次のビットマスクをフラグと共に使用して、ドライバーが SQLGetData に対してサポートする一般的な拡張機能を決定します。
SQL_GD_ANY_COLUMN = SQLGetData は、バインドされていない列 (最後にバインドされた列の前の列を含む) に対して呼び出すことができます。 SQL_GD_ANY_ORDERも返されない限り、列は昇順の列番号順に呼び出す必要があることに注意してください。
SQL_GD_ANY_ORDER = SQLGetData は、バインドされていない列に対して任意の順序で呼び出すことができます。 SQLGetData は、SQL_GD_ANY_COLUMNも返されない限り、最後にバインドされた列の後にある列に対してのみ呼び出すことができます。
SQL_GD_BLOCK = SQLGetData は、SQLSetPos を使用してその行に配置した後、データのブロック内の任意の行 (行セット サイズが 1 より大きい) の非連結列に対して呼び出すことができます。
SQL_GD_BOUND = バインドされていない列に加えて、バインドされた列に対して SQLGetData を呼び出すことができます。 ドライバーは、SQL_GD_ANY_COLUMNも返さない限り、この値を返すことはできません。
SQL_GD_OUTPUT_PARAMS = SQLGetData を呼び出して、出力パラメーター値を返すことができます。 詳細については、「 SQLGetData を使用した出力パラメーターの取得」を参照してください。

SQLGetData は、最後にバインドされた列の後に発生し、列番号を増やす順序で呼び出され、行ブロック内の行に含まれていない非バインド列からのみデータを返す必要があります。

ドライバーがブックマーク (固定長または可変長) をサポートしている場合は、列 0 での SQLGetData の呼び出しをサポートする必要があります。 このサポートは、SQL_GETDATA_EXTENSIONS InfoType を使用した SQLGetInfo の呼び出しに対してドライバーが返す内容に関係なく必要です
SQL_GROUP_BY 2.0 GROUP BY 句の列と選択リスト内の非集計列の間のリレーションシップを指定する SQLUSMALLINT 値。
SQL_GB_COLLATE = COLLATE 句は、各グループ化列の末尾に指定できます。 (ODBC 3.0)
SQL_GB_NOT_SUPPORTED = GROUP BY 句はサポートされていません。 (ODBC 2.0)
SQL_GB_GROUP_BY_EQUALS_SELECT = GROUP BY 句には、選択リスト内のすべての非集計列が含まれている必要があります。 他の列を含めることはできません。 たとえば、 SELECT DEPT、MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT などです。 (ODBC 2.0)
SQL_GB_GROUP_BY_CONTAINS_SELECT = GROUP BY 句には、選択リスト内のすべての非集計列が含まれている必要があります。 選択リストにない列を含めることができます。 たとえば、 SELECT DEPT、MAX(SALARY) FROM EMPLOYEE GROUP BY DEPT、AGE などです。 (ODBC 2.0)
SQL_GB_NO_RELATION = GROUP BY 句の列と選択リストは関連しません。 選択リスト内のグループ化されていない非集計列の意味は、データ ソースに依存します。 たとえば、 SELECT DEPT、EMPLOYEE GROUP BY DEPT、AGE の給与などです。 (ODBC 2.0)

SQL-92 エントリ レベル準拠ドライバーは、サポートされているSQL_GB_GROUP_BY_EQUALS_SELECT オプションを常に返します。 SQL-92 完全レベル準拠ドライバーは、常にサポートされているSQL_GB_COLLATE オプションを返します。 どのオプションもサポートされていない場合、 GROUP BY 句はデータ ソースではサポートされません。
SQL_IDENTIFIER_CASE 1.0 SQLUSMALLINT 値を次に示します。
SQL_IC_UPPER = SQL の識別子では大文字と小文字が区別されず、システム カタログに大文字で格納されます。
SQL_IC_LOWER = SQL の識別子では大文字と小文字が区別されず、システム カタログに小文字で格納されます。
SQL_IC_SENSITIVE = SQL の識別子は大文字と小文字が区別され、システム カタログでは大文字と小文字が混在して格納されます。
SQL_IC_MIXED = SQL の識別子は大文字と小文字が区別されず、システム カタログ内の大文字と小文字が混在して格納されます。

SQL-92 の識別子では大文字と小文字が区別されないため、SQL-92 (任意のレベル) に厳密に準拠するドライバーは、サポートされているSQL_IC_SENSITIVE オプションを返しません。
SQL_IDENTIFIER_QUOTE_CHAR 1.0 SQL ステートメントの引用符で囲まれた (区切られた) 識別子の開始区切り記号と終了区切り記号として使用される文字列。 (ODBC 関数に引数として渡される識別子を引用符で囲む必要はありません)。データ ソースが引用符で囲まれた識別子をサポートしていない場合は、空白が返されます。

この文字列は、接続属性SQL_ATTR_METADATA_IDが SQL_TRUE に設定されている場合に、カタログ関数の引数を引用符で囲む場合にも使用できます。

SQL-92 の識別子引用符文字は二重引用符 (") であるため、SQL-92 に厳密に準拠するドライバーは常に二重引用符文字を返します。
SQL_INDEX_KEYWORDS 3.0 ドライバーでサポートされている CREATE INDEX ステートメントのキーワードを列挙する SQLUINTEGER ビットマスク。
SQL_IK_NONE = どのキーワードもサポートされていません。
SQL_IK_ASC = ASC キーワードがサポートされています。
SQL_IK_DESC = DESC キーワードがサポートされています。
SQL_IK_ALL = すべてのキーワードがサポートされています。

CREATE INDEX ステートメントがサポートされているかどうかを確認するために、アプリケーションは、SQL_DLL_INDEX情報型を使用して SQLGetInfo を呼び出します。
SQL_INFO_SCHEMA_VIEWS 3.0 ドライバーでサポートされているINFORMATION_SCHEMA内のビューを列挙する SQLUINTEGER ビットマスク。 INFORMATION_SCHEMA内のビューと内容は、SQL-92 で定義されているとおりです。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

サポートされているビューを決定するには、次のビットマスクを使用します。
SQL_ISV_ASSERTIONS = 特定のユーザーが所有するカタログのアサーションを識別します。 (フル レベル)
SQL_ISV_CHARACTER_SETS = 特定のユーザーがアクセスできるカタログの文字セットを識別します。 (中間レベル)
SQL_ISV_CHECK_CONSTRAINTS = 特定のユーザーが所有する CHECK 制約を識別します。 (中間レベル)
SQL_ISV_COLLATIONS = 特定のユーザーがアクセスできるカタログの文字照合順序を識別します。 (フル レベル)
SQL_ISV_COLUMN_DOMAIN_USAGE = カタログで定義されているドメインに依存し、特定のユーザーが所有するカタログの列を識別します。 (中間レベル)
SQL_ISV_COLUMN_PRIVILEGES = 特定のユーザーが使用できる、または付与された永続テーブルの列に対する特権を識別します。 (FIPS 移行レベル)
SQL_ISV_COLUMNS = 特定のユーザーがアクセスできる永続テーブルの列を識別します。 (FIPS 移行レベル)
SQL_ISV_CONSTRAINT_COLUMN_USAGE = CONSTRAINT_TABLE_USAGE ビューと同様に、特定のユーザーが所有するさまざまな制約に対して列が識別されます。 (中間レベル)
SQL_ISV_CONSTRAINT_TABLE_USAGE = 制約 (参照、一意、アサーション) によって使用され、特定のユーザーが所有するテーブルを識別します。 (中間レベル)
SQL_ISV_DOMAIN_CONSTRAINTS = 特定のユーザーがアクセスできる (カタログ内のドメインの) ドメイン制約を識別します。 (中間レベル)
SQL_ISV_DOMAINS = ユーザーがアクセスできるカタログで定義されているドメインを識別します。 (中間レベル)
SQL_ISV_KEY_COLUMN_USAGE = 特定のユーザーによってキーとして制約されているカタログで定義されている列を識別します。 (中間レベル)
SQL_ISV_REFERENTIAL_CONSTRAINTS = 特定のユーザーが所有する参照制約を識別します。 (中間レベル)
SQL_ISV_SCHEMATA = 特定のユーザーが所有するスキーマを識別します。 (中間レベル)
SQL_ISV_SQL_LANGUAGES = SQL 実装でサポートされている SQL 準拠レベル、オプション、および方言を識別します。 (中間レベル)
SQL_ISV_TABLE_CONSTRAINTS = 特定のユーザーが所有するテーブル制約を識別します。 (中間レベル)
SQL_ISV_TABLE_PRIVILEGES = 特定のユーザーが使用できる、または付与された永続テーブルに対する特権を識別します。 (FIPS 移行レベル)
SQL_ISV_TABLES = 特定のユーザーがアクセスできるカタログで定義されている永続テーブルを識別します。 (FIPS 移行レベル)
SQL_ISV_TRANSLATIONS = 特定のユーザーがアクセスできるカタログの文字変換を識別します。 (フル レベル)
SQL_ISV_USAGE_PRIVILEGES = 特定のユーザーが使用できる、または所有しているカタログ オブジェクトに対する USAGE 特権を識別します。 (FIPS 移行レベル)
SQL_ISV_VIEW_COLUMN_USAGE = 特定のユーザーが所有するカタログのビューが依存している列を識別します。 (中間レベル)
SQL_ISV_VIEW_TABLE_USAGE = 特定のユーザーが所有するカタログのビューが依存しているテーブルを識別します。 (中間レベル)
SQL_ISV_VIEWS = 特定のユーザーがアクセスできる、このカタログで定義されている表示テーブルを識別します。 (FIPS 移行レベル)
SQL_INSERT_STATEMENT 3.0 INSERT ステートメントのサポートを示す SQLUINTEGER ビットマスク:
SQL_IS_INSERT_LITERALS
SQL_IS_INSERT_SEARCHED
SQL_IS_SELECT_INTO

SQL-92 エントリ レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_INTEGRITY 1.0 データ ソースが整合性拡張機能をサポートしている場合は、"Y" という文字列。"N" でない場合は "N" です。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_ODBC_SQL_OPT_IEFから変更されました。
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 ドライバーでサポートされているキーセット カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の最初のサブセットが含まれています。2 番目のサブセットについては、SQL_KEYSET_CURSOR_ATTRIBUTES2を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES1を参照してください (説明では"動的カーソル" に "keyset ドリブン カーソル" を置き換える)。

SQL-92 Intermediate レベル準拠ドライバーは、通常、サポートされているSQL_CA1_NEXT、SQL_CA1_ABSOLUTE、およびSQL_CA1_RELATIVEオプションを返します。これは、ドライバーが埋め込み SQL FETCH ステートメントを通じてスクロール可能なカーソルをサポートするためです。 ただし、これは基になる SQL サポートを直接決定しないため、SQL-92 中間レベル準拠ドライバーの場合でも、スクロール可能なカーソルがサポートされない場合があります。
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 ドライバーでサポートされているキーセット カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の 2 番目のサブセットが含まれています。最初のサブセットについては、SQL_KEYSET_CURSOR_ATTRIBUTES1を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES1を参照してください (説明では"動的カーソル" に "keyset ドリブン カーソル" を置き換える)。
SQL_KEYWORDS 2.0 すべてのデータ ソース固有のキーワードのコンマ区切りリストを含む文字列。 このリストには、ODBC に固有のキーワードや、データ ソースと ODBC の両方で使用されるキーワードは含まれません。 このリストは、すべての予約済みキーワードを表します。相互運用可能なアプリケーションでは、オブジェクト名にこれらの単語を使用しないでください。

ODBC キーワードの一覧については、「付録 C: SQL 文法」の予約キーワードを参照してくださいSQL_ODBC_KEYWORDS #define 値には、ODBC キーワードのコンマ区切りのリストが含まれています。
SQL_LIKE_ESCAPE_CLAUSE 2.0 LIKE 述語でデータ ソースがパーセント文字 (%) およびアンダースコア文字 (_) のエスケープ文字 (_) をサポートし、ドライバーが LIKE 述語エスケープ文字を定義するための ODBC 構文をサポートしている場合、"Y" という文字列。それ以外の場合は "N" です。
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 特定の接続でドライバーがサポートできる非同期モードでのアクティブな同時実行ステートメントの最大数を指定する SQLUINTEGER 値。 特定の制限がない場合、または制限が不明な場合、この値は 0 です。
SQL_MAX_BINARY_LITERAL_LEN 2.0 SQL ステートメント内のバイナリ リテラルの最大長 (SQLGetTypeInfo によって返されるリテラル プレフィックスとサフィックスを除く 16 進数文字の数) を指定する SQLUINTEGER 値。 たとえば、バイナリ リテラル 0xFFAAの長さは 4 です。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。
SQL_MAX_CATALOG_NAME_LEN 1.0 データ ソース内のカタログ名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。

FIPS 完全レベル準拠ドライバーは、少なくとも 128 を返します。

この インフォタイプ は ODBC 3.0 の名前が ODBC 2.0 InfoType SQL_MAX_QUALIFIER_NAME_LENから変更されました。
SQL_MAX_CHAR_LITERAL_LEN 2.0 SQL ステートメント内の文字リテラルの最大長 (SQLGetTypeInfo によって返されるリテラル プレフィックスとサフィックスを除く文字数) を指定する SQLUINTEGER 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。
SQL_MAX_COLUMN_NAME_LEN 1.0 データ ソース内の列名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 18 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 128 を返します。
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 GROUP BY 句で許可される列の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 6 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 15 を返します。
SQL_MAX_COLUMNS_IN_INDEX 2.0 インデックスで許可される列の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 ORDER BY 句で許可される列の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 6 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 15 を返します。
SQL_MAX_COLUMNS_IN_SELECT 2.0 選択リストで許可される列の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベル準拠ドライバーは、少なくとも 100 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 250 を返します。
SQL_MAX_COLUMNS_IN_TABLE 2.0 テーブルで許可される列の最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベル準拠ドライバーは、少なくとも 100 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 250 を返します。
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 接続に対してドライバーがサポートできるアクティブなステートメントの最大数を指定する SQLUSMALLINT 値。 ステートメントは、結果が保留中の場合はアクティブとして定義され、"results" という用語は SELECT 操作の行、INSERT、UPDATEまたは DELETE 操作の影響を受ける行 (行数など) を意味し、NEED_DATA状態の場合はアクティブとして定義されます。 この値は、ドライバーまたはデータ ソースによって課される制限を反映できます。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

この インフォタイプ は ODBC 3.0 の名前が ODBC 2.0 インフォタイプ SQL_ACTIVE_STATEMENTSから変更されました。
SQL_MAX_CURSOR_NAME_LEN 1.0 データ ソース内のカーソル名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 18 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 128 を返します。
SQL_MAX_DRIVER_CONNECTIONS 1.0 ドライバーが環境に対してサポートできるアクティブな接続の最大数を指定する SQLUSMALLINT 値。 この値は、ドライバーまたはデータ ソースによって課される制限を反映できます。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_ACTIVE_CONNECTIONSから変更されました。
SQL_MAX_IDENTIFIER_LEN 3.0 データ ソースがユーザー定義名に対してサポートする文字の最大サイズを示す SQLUSMALLINT。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 18 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 128 を返します。
SQL_MAX_INDEX_SIZE 2.0 インデックスの結合フィールドで許容される最大バイト数を指定する SQLUINTEGER 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。
SQL_MAX_PROCEDURE_NAME_LEN 1.0 データ ソース内のプロシージャ名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。
SQL_MAX_ROW_SIZE 2.0 テーブル内の 1 行の最大長を指定する SQLUINTEGER 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベル準拠ドライバーは、少なくとも 2,000 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 8,000 を返します。
SQL_MAX_ROW_SIZE_INCLUDES_LONG 3.0 SQL_MAX_ROW_SIZE情報型に返される最大行サイズに、行内のすべてのSQL_LONGVARCHAR列とSQL_LONGVARBINARY列の長さが含まれる場合は、"Y" という文字列。それ以外の場合は "N" です。
SQL_MAX_SCHEMA_NAME_LEN 1.0 データ ソース内のスキーマ名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 18 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 128 を返します。

この インフォタイプ は ODBC 3.0 の名前が ODBC 2.0 InfoType SQL_MAX_OWNER_NAME_LENから変更されました。
SQL_MAX_STATEMENT_LEN 2.0 SQL ステートメントの最大長 (空白を含む文字数) を指定する SQLUINTEGER 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。
SQL_MAX_TABLE_NAME_LEN 1.0 データ ソース内のテーブル名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 18 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 128 を返します。
SQL_MAX_TABLES_IN_SELECT 2.0 SELECT ステートメントの FROMで許可されるテーブルの最大数を指定する SQLUSMALLINT 値。 指定された制限がない場合、または制限が不明な場合、この値は 0 に設定されます。

FIPS エントリ レベルに準拠したドライバーは、少なくとも 15 を返します。 FIPS 中間レベル準拠ドライバーは、少なくとも 50 を返します。
SQL_MAX_USER_NAME_LEN 2.0 データ ソース内のユーザー名の最大長を指定する SQLUSMALLINT 値。 最大長がない場合、または長さが不明な場合、この値は 0 に設定されます。
SQL_MULT_RESULT_SETS 1.0 文字列: データ ソースが複数の結果セットをサポートしている場合は "Y"、サポートされていない場合は "N" です。

複数の結果セットの詳細については、「複数の結果」を参照してください
SQL_MULTIPLE_ACTIVE_TXN 1.0 ドライバーが同時に複数のアクティブなトランザクションをサポートしている場合は "Y" という文字列。いつでもアクティブにできるトランザクションが 1 つだけの場合は "N" です。

分散トランザクションの場合、この情報の種類に対して返される情報は適用されません。
SQL_NEED_LONG_DATA_LEN 2.0 長いデータ値の長さ (データ型がSQL_LONGVARCHAR、SQL_LONGVARBINARY、または長いデータ ソース固有のデータ型) がデータ ソースに送信される前に必要な場合は、"Y" という文字列。そうでない場合は "N" です。 詳細については、「SQLBindParameter 関数」および「SQLSetPos 関数」を参照してください。
SQL_NON_NULLABLE_COLUMNS 1.0 データ ソースが列で NOT NULL をサポートするかどうかを指定する SQLUSMALLINT 値。
SQL_NNC_NULL = すべての列は null 許容である必要があります。
SQL_NNC_NON_NULL = 列を null 許容にすることはできません。 (データ ソースでは、〘〗CREATE TABLE ステートメントの NOT NULL 列制約。

SQL-92 エントリ レベル準拠ドライバーは、SQL_NNC_NON_NULLを返します。
SQL_NULL_COLLATION 2.0 結果セットで NULL を並べ替える場所を指定する SQLUSMALLINT 値。
SQL_NC_END = NULL は、ASC キーワードまたは DESC キーワードに関係なく、結果セットの末尾で並べ替えられます。
SQL_NC_HIGH = NULL は、ASC キーワードまたは DESC キーワードに応じて、結果セットのハイエンドで並べ替えられます。
SQL_NC_LOW = NULL は、ASC キーワードまたは DESC キーワードに応じて、結果セットの下端で並べ替えられます。
SQL_NC_START = NULL は、ASC キーワードまたは DESC キーワードに関係なく、結果セットの先頭で並べ替えられます。
SQL_NUMERIC_FUNCTIONS 1.0 注: 情報の種類は ODBC 1.0 で導入されました。各ビットマスクには、そのビットマスクが導入されたバージョンでラベルが付けられます。

ドライバーおよび関連付けられているデータ ソースでサポートされるスカラー数値関数を列挙する SQLUINTEGER ビットマスク。

サポートされている数値関数を決定するには、次のビットマスクを使用します。
SQL_FN_NUM_ABS (ODBC 1.0)
SQL_FN_NUM_ACOS (ODBC 1.0)
SQL_FN_NUM_ASIN (ODBC 1.0)
SQL_FN_NUM_ATAN (ODBC 1.0)
SQL_FN_NUM_ATAN2 (ODBC 1.0)
SQL_FN_NUM_CEILING (ODBC 1.0)
SQL_FN_NUM_COS (ODBC 1.0)
SQL_FN_NUM_COT (ODBC 1.0)
SQL_FN_NUM_DEGREES (ODBC 2.0)
SQL_FN_NUM_EXP (ODBC 1.0)
SQL_FN_NUM_FLOOR (ODBC 1.0)
SQL_FN_NUM_LOG (ODBC 1.0)
SQL_FN_NUM_LOG10 (ODBC 2.0)
SQL_FN_NUM_MOD (ODBC 1.0)
SQL_FN_NUM_PI (ODBC 1.0)
SQL_FN_NUM_POWER (ODBC 2.0)
SQL_FN_NUM_RADIANS (ODBC 2.0)
SQL_FN_NUM_RAND (ODBC 1.0)
SQL_FN_NUM_ROUND (ODBC 2.0)
SQL_FN_NUM_SIGN (ODBC 1.0)
SQL_FN_NUM_SIN (ODBC 1.0)
SQL_FN_NUM_SQRT (ODBC 1.0)
SQL_FN_NUM_TAN (ODBC 1.0)
SQL_FN_NUM_TRUNCATE (ODBC 2.0)
SQL_ODBC_INTERFACE_CONFORMANCE 3.0 ドライバーが準拠している ODBC 3*.x* インターフェイスのレベルを示す SQLUINTEGER 値。

SQL_OIC_CORE: すべての ODBC ドライバーが準拠することが期待される最小レベル。 このレベルには、接続関数、SQL ステートメントの準備と実行のための関数、基本的な結果セットメタデータ関数、基本的なカタログ関数などの基本的なインターフェイス要素が含まれます。
SQL_OIC_LEVEL1: コア標準コンプライアンス レベルの機能、スクロール可能なカーソル、ブックマーク、配置された更新と削除などを含むレベル。
SQL_OIC_LEVEL2: レベル 1 標準コンプライアンス レベルの機能に加えて、機密カーソルなどの高度な機能を含むレベル。ブックマークによる更新、削除、および更新。ストアド プロシージャのサポート。主キーと外部キーのカタログ関数。マルチカタログのサポート。などなど。

詳細については、「インターフェイス準拠レベル」を参照してください
SQL_ODBC_VER 1.0 ドライバー マネージャーが準拠する ODBC のバージョンを含む文字列。 バージョンは ##.##.0000 という形式で、最初の 2 桁はメジャー バージョン、次の 2 桁はマイナー バージョンです。 これは、ドライバー マネージャーでのみ実装されます。
SQL_OJ_CAPABILITIES 2.01 ドライバーとデータ ソースでサポートされる外部結合の種類を列挙する SQLUINTEGER ビットマスク。 サポートされている型を決定するには、次のビットマスクを使用します。
SQL_OJ_LEFT = 左外部結合がサポートされています。
SQL_OJ_RIGHT = 右外部結合がサポートされています。
SQL_OJ_FULL = 完全外部結合がサポートされています。
SQL_OJ_NESTED = 入れ子になった外部結合がサポートされています。
SQL_OJ_NOT_ORDERED = 外部結合の ON 句の列名は、OUTER JOIN 句のそれぞれのテーブル名と同じ順序である必要はありません。
SQL_OJ_INNER = 内部テーブル (左外部結合の右テーブルまたは右外部結合の左テーブル) は、内部結合でも使用できます。 これは、内部テーブルを持たない完全外部結合には適用されません。
SQL_OJ_ALL_COMPARISON_OPS = ON 句の比較演算子には、任意の ODBC 比較演算子を指定できます。 このビットが設定されていない場合は、外部結合で等号 (=) 比較演算子のみを使用できます。

サポートされているオプションが返されない場合、外部結合句はサポートされません。

SQL-92 で定義されている SELECT ステートメントでのリレーショナル結合演算子のサポートについては、SQL_SQL92_RELATIONAL_JOIN_OPERATORSを参照してください。
SQL_ORDER_BY_COLUMNS_IN_SELECT 2.0 ORDER BY 句の列を選択リストに含める必要がある場合は文字列 "Y"、それ以外の場合は "N" です。
SQL_PARAM_ARRAY_ROW_COUNTS 3.0 パラメーター化された実行での行数の可用性に関するドライバーのプロパティを列挙する SQLUINTEGER。 次の値があります。
SQL_PARC_BATCH = パラメーターのセットごとに個々の行数を使用できます。 これは概念的には、配列に設定されたパラメーターごとに 1 つずつ、SQL ステートメントのバッチを生成するドライバーと同じです。 拡張エラー情報は、SQL_PARAM_STATUS_PTR記述子フィールドを使用して取得できます。
SQL_PARC_NO_BATCH = 使用可能な行数は 1 つだけです。これは、パラメーターの配列全体に対するステートメントの実行に起因する累積行数です。 これは概念的には、ステートメントを完全なパラメーター配列と共に 1 つのアトミック単位として扱うことと同じです。 エラーは、1 つのステートメントが実行された場合と同じように処理されます。
SQL_PARAM_ARRAY_SELECTS 3.0 パラメーター化された実行での結果セットの可用性に関するドライバーのプロパティを列挙する SQLUINTEGER。 次の値があります。
SQL_PAS_BATCH = パラメーターのセットごとに 1 つの結果セットを使用できます。 これは概念的には、配列に設定されたパラメーターごとに 1 つずつ、SQL ステートメントのバッチを生成するドライバーと同じです。
SQL_PAS_NO_BATCH = 使用可能な結果セットは 1 つだけです。これは、パラメーターの完全な配列に対するステートメントの実行に起因する累積結果セットを表します。 これは概念的には、ステートメントを完全なパラメーター配列と共に 1 つのアトミック単位として扱うことと同じです。
SQL_PAS_NO_SELECT = ドライバーでは、パラメーターの配列を使用して結果セット生成ステートメントを実行できません。
SQL_POS_OPERATIONS 2.0 SQLSetPosサポート操作を列挙する SQLINTEGER ビットマスク。

次のビットマスクは、サポートされているオプションを決定するためにフラグと共に使用されます。
SQL_POS_POSITION (ODBC 2.0)
SQL_POS_REFRESH (ODBC 2.0)
SQL_POS_UPDATE (ODBC 2.0)
SQL_POS_DELETE (ODBC 2.0)
SQL_POS_ADD (ODBC 2.0)
SQL_PROCEDURE_TERM 1.0 プロシージャのデータ ソース ベンダーの名前を持つ文字列。たとえば、"database procedure"、"stored procedure"、"procedure"、"package"、"stored query" などです。
SQL_PROCEDURES 1.0 データ ソースがプロシージャをサポートし、ドライバーが ODBC プロシージャ呼び出し構文をサポートしている場合は、文字列 "Y" です。それ以外の場合は "N" です。
SQL_QUOTED_IDENTIFIER_CASE 2.0 SQLUSMALLINT 値を次に示します。
SQL_IC_UPPER = SQL の引用符で囲まれた識別子は大文字と小文字が区別されず、システム カタログに大文字で格納されます。
SQL_IC_LOWER = SQL の引用符で囲まれた識別子は大文字と小文字は区別されず、システム カタログに小文字で格納されます。
SQL_IC_SENSITIVE = SQL の引用符で囲まれた識別子は大文字と小文字が区別され、システム カタログに大文字と小文字が混在して格納されます。 (SQL-92 準拠のデータベースでは、引用符で囲まれた識別子では常に大文字と小文字が区別されます)。
SQL_IC_MIXED = SQL の引用符で囲まれた識別子は大文字と小文字が区別されず、システム カタログ内の大文字と小文字が混在して格納されます。

SQL-92 エントリ レベル準拠ドライバーは常にSQL_IC_SENSITIVEを返します。
SQL_ROW_UPDATES 1.0 キーセットドリブンカーソルまたは混合カーソルがフェッチされたすべての行の行バージョンまたは値を保持しているため、行が最後にフェッチされてからユーザーが行に加えたすべての更新を検出できる場合は、"Y" という文字列。 (これは更新プログラムにのみ適用され、削除や挿入には適用されません)。ドライバーは、SQLFetchScroll が呼び出されたときに、SQL_ROW_UPDATED フラグを行の状態配列に返すことができます。 それ以外の場合は"N"。
SQL_SCHEMA_TERM 1.0 スキーマのデータ ソース ベンダーの名前を持つ文字列。たとえば、"owner"、"Authorization ID"、"Schema" などです。

文字列は、大文字、小文字、または大文字と小文字の混在で返すことができます。

SQL-92 エントリ レベル準拠ドライバーは常に "スキーマ" を返します。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_OWNER_TERMから変更されました。
SQL_SCHEMA_USAGE 2.0 スキーマを使用できるステートメントを列挙する SQLUINTEGER ビットマスク:
SQL_SU_DML_STATEMENTS = スキーマは、SELECT、INSERT、UPDATEDELETE のすべてのデータ操作言語ステートメントでサポートされ、サポートされている場合は SELECT FOR UPDATE ステートメントと位置指定更新ステートメントと delete ステートメントがサポートされます。
SQL_SU_PROCEDURE_INVOCATION = ODBC プロシージャ呼び出しステートメントではスキーマがサポートされています。
SQL_SU_TABLE_DEFINITION = スキーマは、CREATE TABLE、CREATE VIEW、ALTER TABLE、DROP TABLEDROP VIEW のすべてのテーブル定義ステートメントでサポートされています。
SQL_SU_INDEX_DEFINITION = スキーマは、CREATE INDEX と DROP INDEX のすべてのインデックス定義ステートメントでサポートされています。
SQL_SU_PRIVILEGE_DEFINITION = スキーマは、GRANT および REVOKE のすべての特権定義ステートメントでサポートされています。

SQL-92 エントリ レベル準拠ドライバーは、サポートされているSQL_SU_DML_STATEMENTS、SQL_SU_TABLE_DEFINITION、およびSQL_SU_PRIVILEGE_DEFINITIONオプションを常に返します。

ODBC 3.0 では、この インフォタイプ の名前が ODBC 2.0 InfoType SQL_OWNER_USAGEから変更されました。
SQL_SCROLL_OPTIONS 1.0 注: 情報の種類は ODBC 1.0 で導入されました。各ビットマスクには、そのビットマスクが導入されたバージョンでラベルが付けられます。

スクロール可能なカーソルでサポートされるスクロール オプションを列挙する SQLUINTEGER ビットマスク。

サポートされているオプションを決定するには、次のビットマスクを使用します。
SQL_SO_FORWARD_ONLY = カーソルは前方にのみスクロールします。 (ODBC 1.0)
SQL_SO_STATIC = 結果セット内のデータは静的です。 (ODBC 2.0)
SQL_SO_KEYSET_DRIVEN = ドライバーは、結果セット内のすべての行のキーを保存して使用します。 (ODBC 1.0)
SQL_SO_DYNAMIC = ドライバーは、行セット内のすべての行のキーを保持します (キーセットのサイズは行セット のサイズと同じです)。 (ODBC 1.0)
SQL_SO_MIXED = ドライバーはキーセット内のすべての行のキーを保持し、キーセットのサイズが行セットのサイズより大きい。 カーソルはキーセット内でキーセットドリブンであり、キーセットの外側では動的です。 (ODBC 1.0)

スクロール可能カーソルの詳細については、「スクロール可能カーソル」を参照してください
SQL_SEARCH_PATTERN_ESCAPE 1.0 検索パターンで有効な文字としてパターン マッチ メタ文字アンダースコア (_) とパーセント記号 (%) を使用できるエスケープ文字としてドライバーがサポートするものを指定する文字列。 このエスケープ文字は、検索文字列をサポートするカタログ関数の引数にのみ適用されます。 この文字列が空の場合、ドライバーは検索パターンのエスケープ文字をサポートしていません。

この情報型は LIKE 述語のエスケープ文字の一般的なサポートを示していないため、SQL-92 にはこの文字列の要件は含まれません。

この インフォタイプ はカタログ関数に限定されます。 検索パターン文字列でエスケープ文字を使用する方法の詳細については、「パターン値の引数」を参照してください
SQL_SERVER_NAME 1.0 実際のデータ ソース固有のサーバー名を持つ文字列。は、SQLConnect、SQLDriverConnect、および SQLBrowseConnect の間にデータ ソース名が使用される場合に便利です
SQL_SPECIAL_CHARACTERS 2.0 データ ソースの識別子名 (テーブル名、列名、インデックス名など) で使用できるすべての特殊文字 (つまり、a から z、A から Z、0 ~ 9、アンダースコアを除くすべての文字) を含む文字列。 たとえば、"#$^" とします。 識別子にこれらの文字が 1 つ以上含まれている場合、識別子は区切られた識別子である必要があります。
SQL_SQL_CONFORMANCE 3.0 ドライバーでサポートされている SQL-92 のレベルを示す SQLUINTEGER 値。
SQL_SC_SQL92_ENTRY = エントリ レベル SQL-92 に準拠しています。
SQL_SC_FIPS127_2_TRANSITIONAL = FIPS 127-2 移行レベルに準拠しています。
SQL_SC_SQL92_FULL = 完全レベルの SQL-92 に準拠しています。
SQL_SC_ SQL92_INTERMEDIATE = 中間レベルの SQL-92 に準拠しています。
SQL_SQL92_DATETIME_FUNCTIONS 3.0 SQL-92 で定義されているように、ドライバーと関連するデータ ソースでサポートされている datetime スカラー関数を列挙する SQLUINTEGER ビットマスク。

次のビットマスクを使用して、どの datetime 関数がサポートされているかを判断します。
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 SQL-92 で定義されている DELETE ステートメントの外部キーに対してサポートされる規則を列挙する SQLUINTEGER ビットマスク。

次のビットマスクを使用して、データ ソースでサポートされている句を決定します。
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

FIPS 移行レベルに準拠したドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 SQL-92 で定義されている UPDATE ステートメントの外部キーに対してサポートされる規則を列挙する SQLUINTEGER ビットマスク。

次のビットマスクを使用して、データ ソースでサポートされている句を決定します。
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

SQL-92 完全レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_SQL92_GRANT 3.0 SQL-92 で定義されている GRANT ステートメントでサポートされている句を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

次のビットマスクを使用して、データ ソースでサポートされている句を決定します。
SQL_SG_DELETE_TABLE (エントリ レベル)
SQL_SG_INSERT_COLUMN (中間レベル)
SQL_SG_INSERT_TABLE (エントリ レベル)
SQL_SG_REFERENCES_TABLE (エントリ レベル)
SQL_SG_REFERENCES_COLUMN (エントリ レベル)
SQL_SG_SELECT_TABLE (エントリ レベル)
SQL_SG_UPDATE_COLUMN (エントリ レベル)
SQL_SG_UPDATE_TABLE (エントリ レベル)
SQL_SG_USAGE_ON_DOMAIN (FIPS 移行レベル)
SQL_SG_USAGE_ON_CHARACTER_SET (FIPS 移行レベル)
SQL_SG_USAGE_ON_COLLATION (FIPS 移行レベル)
SQL_SG_USAGE_ON_TRANSLATION (FIPS 移行レベル)
SQL_SG_WITH_GRANT_OPTION (エントリ レベル)
SQL_SQL92_NUMERIC_VALUE_FUNCTIONS 3.0 SQL-92 で定義されているドライバーと関連するデータ ソースでサポートされている数値スカラー関数を列挙する SQLUINTEGER ビットマスク。

サポートされている数値関数を決定するには、次のビットマスクを使用します。
SQL_SNVF_BIT_LENGTH
SQL_SNVF_CHAR_LENGTH
SQL_SNVF_CHARACTER_LENGTH
SQL_SNVF_EXTRACT
SQL_SNVF_OCTET_LENGTH
SQL_SNVF_POSITION
SQL_SQL92_PREDICATES 3.0 SQL-92 で定義されている SELECT ステートメントでサポートされる述語を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

次のビットマスクを使用して、データ ソースでサポートされているオプションを決定します。
SQL_SP_BETWEEN (エントリ レベル)
SQL_SP_COMPARISON (エントリ レベル)
SQL_SP_EXISTS (エントリ レベル)
SQL_SP_IN (エントリ レベル)
SQL_SP_ISNOTNULL (エントリ レベル)
SQL_SP_ISNULL (エントリ レベル)
SQL_SP_LIKE (エントリ レベル)
SQL_SP_MATCH_FULL (フル レベル)
SQL_SP_MATCH_PARTIAL(フル レベル)
SQL_SP_MATCH_UNIQUE_FULL (フル レベル)
SQL_SP_MATCH_UNIQUE_PARTIAL (フル レベル)
SQL_SP_OVERLAPS (FIPS 移行レベル)
SQL_SP_QUANTIFIED_COMPARISON (エントリ レベル)
SQL_SP_UNIQUE (エントリ レベル)
SQL_SQL92_RELATIONAL_JOIN_OPERATORS 3.0 SQL-92 で定義されている SELECT ステートメントでサポートされているリレーショナル結合演算子を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

次のビットマスクを使用して、データ ソースでサポートされているオプションを決定します。
SQL_SRJO_CORRESPONDING_CLAUSE (中間レベル)
SQL_SRJO_CROSS_JOIN (フル レベル)
SQL_SRJO_EXCEPT_JOIN (中間レベル)
SQL_SRJO_FULL_OUTER_JOIN (中間レベル)
SQL_SRJO_INNER_JOIN (FIPS 移行レベル)
SQL_SRJO_INTERSECT_JOIN (中間レベル)
SQL_SRJO_LEFT_OUTER_JOIN (FIPS 移行レベル)
SQL_SRJO_NATURAL_JOIN (FIPS 移行レベル)
SQL_SRJO_RIGHT_OUTER_JOIN (FIPS 移行レベル)
SQL_SRJO_UNION_JOIN (フル レベル)

SQL_SRJO_INNER_JOINは、内部結合機能ではなく、INNER JOIN 構文のサポートを示します。 INNER JOIN 構文のサポートは FIPS TRANSITIONAL ですが、内部結合機能のサポートは ENTRY です
SQL_SQL92_REVOKE 3.0 データ ソースでサポートされている SQL-92 で定義されている REVOKE ステートメントでサポートされる句を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

次のビットマスクを使用して、データ ソースでサポートされている句を決定します。
SQL_SR_CASCADE (FIPS 移行レベル)
SQL_SR_DELETE_TABLE (エントリ レベル)
SQL_SR_GRANT_OPTION_FOR (中間レベル)
SQL_SR_INSERT_COLUMN (中間レベル)
SQL_SR_INSERT_TABLE (エントリ レベル)
SQL_SR_REFERENCES_COLUMN (エントリ レベル)
SQL_SR_REFERENCES_TABLE (エントリ レベル)
SQL_SR_RESTRICT (FIPS 移行レベル)
SQL_SR_SELECT_TABLE (エントリ レベル)
SQL_SR_UPDATE_COLUMN (エントリ レベル)
SQL_SR_UPDATE_TABLE (エントリ レベル)
SQL_SR_USAGE_ON_DOMAIN (FIPS 移行レベル)
SQL_SR_USAGE_ON_CHARACTER_SET (FIPS 移行レベル)
SQL_SR_USAGE_ON_COLLATION (FIPS 移行レベル)
SQL_SR_USAGE_ON_TRANSLATION (FIPS 移行レベル)
SQL_SQL92_ROW_VALUE_CONSTRUCTOR 3.0 SQL-92 で定義されている SELECT ステートメントでサポートされている行値コンストラクター式を列挙する SQLUINTEGER ビットマスク。 次のビットマスクを使用して、データ ソースでサポートされているオプションを決定します。
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 SQL-92 で定義されているドライバーおよび関連付けられているデータ ソースでサポートされている文字列スカラー関数を列挙する SQLUINTEGER ビットマスク。

サポートされている文字列関数を決定するには、次のビットマスクを使用します。
SQL_SSF_CONVERT
SQL_SSF_LOWERSQL_SSF_UPPER
SQL_SSF_SUBSTRING
SQL_SSF_TRANSLATE
SQL_SSF_TRIM_BOTH
SQL_SSF_TRIM_LEADING
SQL_SSF_TRIM_TRAILING
SQL_SQL92_VALUE_EXPRESSIONS 3.0 SQL-92 で定義されている、サポートされている値式を列挙する SQLUINTEGER ビットマスク。

この機能をサポートする必要がある SQL-92 または FIPS 準拠レベルは、各ビットマスクの横にかっこで囲まれて表示されます。

次のビットマスクを使用して、データ ソースでサポートされているオプションを決定します。
SQL_SVE_CASE (中間レベル)
SQL_SVE_CAST (FIPS 移行レベル)
SQL_SVE_COALESCE (中間レベル)
SQL_SVE_NULLIF (中間レベル)
SQL_STANDARD_CLI_CONFORMANCE 3.0 ドライバーが準拠する CLI 標準または標準を列挙する SQLUINTEGER ビットマスク。 次のビットマスクは、ドライバーが準拠しているレベルを決定するために使用されます。
SQL_SCC_XOPEN_CLI_VERSION1: ドライバーは、Open Group CLI バージョン 1 に準拠しています。
SQL_SCC_ISO92_CLI: ドライバーは ISO 92 CLI に準拠しています。
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 ドライバーでサポートされている静的カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の最初のサブセットが含まれています。2 番目のサブセットについては、SQL_STATIC_CURSOR_ATTRIBUTES2を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA1_NEXT
SQL_CA1_ABSOLUTE
SQL_CA1_RELATIVE
SQL_CA1_BOOKMARK
SQL_CA1_LOCK_NO_CHANGE
SQL_CA1_LOCK_EXCLUSIVE
SQL_CA1_LOCK_UNLOCK
SQL_CA1_POS_POSITION
SQL_CA1_POS_UPDATE
SQL_CA1_POS_DELETE
SQL_CA1_POS_REFRESH
SQL_CA1_POSITIONED_UPDATE
SQL_CA1_POSITIONED_DELETE
SQL_CA1_SELECT_FOR_UPDATE
SQL_CA1_BULK_ADD
SQL_CA1_BULK_UPDATE_BY_BOOKMARK
SQL_CA1_BULK_DELETE_BY_BOOKMARK
SQL_CA1_BULK_FETCH_BY_BOOKMARK

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES1を参照してください (説明の「動的カーソル」の代わりに「静的カーソル」を使用してください)。

SQL-92 Intermediate レベル準拠ドライバーは、通常、サポートされているSQL_CA1_NEXT、SQL_CA1_ABSOLUTE、およびSQL_CA1_RELATIVEオプションを返します。これは、ドライバーが埋め込み SQL FETCH ステートメントを通じてスクロール可能なカーソルをサポートするためです。 ただし、これは基になる SQL サポートを直接決定しないため、SQL-92 中間レベル準拠ドライバーの場合でも、スクロール可能なカーソルがサポートされない場合があります。
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 ドライバーでサポートされている静的カーソルの属性を記述する SQLUINTEGER ビットマスク。 このビットマスクには、属性の 2 番目のサブセットが含まれています。最初のサブセットについては、SQL_STATIC_CURSOR_ATTRIBUTES1を参照してください。

サポートされている属性を決定するには、次のビットマスクを使用します。
SQL_CA2_READ_ONLY_CONCURRENCY
SQL_CA2_LOCK_CONCURRENCY
SQL_CA2_OPT_ROWVER_CONCURRENCY
SQL_CA2_OPT_VALUES_CONCURRENCY
SQL_CA2_SENSITIVITY_ADDITIONS
SQL_CA2_SENSITIVITY_DELETIONS
SQL_CA2_SENSITIVITY_UPDATES
SQL_CA2_MAX_ROWS_SELECT
SQL_CA2_MAX_ROWS_INSERT
SQL_CA2_MAX_ROWS_DELETE
SQL_CA2_MAX_ROWS_UPDATE
SQL_CA2_MAX_ROWS_CATALOG
SQL_CA2_MAX_ROWS_AFFECTS_ALL
SQL_CA2_CRC_EXACT
SQL_CA2_CRC_APPROXIMATE
SQL_CA2_SIMULATE_NON_UNIQUE
SQL_CA2_SIMULATE_TRY_UNIQUE
SQL_CA2_SIMULATE_UNIQUE

これらのビットマスクの説明については、SQL_DYNAMIC_CURSOR_ATTRIBUTES2を参照してください (説明の「動的カーソル」には「静的カーソル」を置き換える)。
SQL_STRING_FUNCTIONS 1.0 注: 情報の種類は ODBC 1.0 で導入されました。各ビットマスクには、そのビットマスクが導入されたバージョンでラベルが付けられます。

ドライバーおよび関連付けられているデータ ソースでサポートされるスカラー文字列関数を列挙する SQLUINTEGER ビットマスク。

サポートされている文字列関数を決定するには、次のビットマスクを使用します。
SQL_FN_STR_ASCII (ODBC 1.0)
SQL_FN_STR_BIT_LENGTH (ODBC 3.0)
SQL_FN_STR_CHAR (ODBC 1.0)
SQL_FN_STR_CHAR_LENGTH (ODBC 3.0)
SQL_FN_STR_CHARACTER_LENGTH (ODBC 3.0)
SQL_FN_STR_CONCAT (ODBC 1.0)
SQL_FN_STR_DIFFERENCE (ODBC 2.0)
SQL_FN_STR_INSERT (ODBC 1.0)
SQL_FN_STR_LCASE (ODBC 1.0)
SQL_FN_STR_LEFT (ODBC 1.0)
SQL_FN_STR_LENGTH (ODBC 1.0)
SQL_FN_STR_LOCATE (ODBC 1.0)
SQL_FN_STR_LTRIM (ODBC 1.0)
SQL_FN_STR_OCTET_LENGTH (ODBC 3.0)
SQL_FN_STR_POSITION (ODBC 3.0)
SQL_FN_STR_REPEAT (ODBC 1.0)
SQL_FN_STR_REPLACE (ODBC 1.0)
SQL_FN_STR_RIGHT (ODBC 1.0)
SQL_FN_STR_RTRIM (ODBC 1.0)
SQL_FN_STR_SOUNDEX (ODBC 2.0)
SQL_FN_STR_SPACE (ODBC 2.0)
SQL_FN_STR_SUBSTRING (ODBC 1.0)
SQL_FN_STR_UCASE (ODBC 1.0)

アプリケーションで、string_exp1、string_exp2、および開始引数を使用して LOCATE スカラー関数を呼び出すことができる場合、ドライバーはSQL_FN_STR_LOCATEビットマスクを返します。 string_exp1引数とstring_exp2引数のみを使用してアプリケーションが LOCATE スカラー関数を呼び出すことができる場合、ドライバーはSQL_FN_STR_LOCATE_2ビットマスクを返します。 LOCATE スカラー関数を完全にサポートするドライバーは、両方のビットマスクを返します。

(詳細については、 付録 E の文字列関数 "スカラー関数")
SQL_SUBQUERIES 2.0 サブクエリをサポートする述語を列挙する SQLUINTEGER ビットマスク:
SQL_SQ_CORRELATED_SUBQUERIES
SQL_SQ_COMPARISON
SQL_SQ_EXISTS
SQL_SQ_INSQL_SQ_QUANTIFIED

SQL_SQ_CORRELATED_SUBQUERIES ビットマスクは、サブクエリをサポートするすべての述語が相関サブクエリをサポートすることを示します。

SQL-92 エントリ レベル準拠ドライバーは、常に、これらのビットがすべて設定されているビットマスクを返します。
SQL_SYSTEM_FUNCTIONS 1.0 ドライバーと関連するデータ ソースでサポートされるスカラー システム関数を列挙する SQLUINTEGER ビットマスク。

サポートされているシステム関数を決定するには、次のビットマスクを使用します。
SQL_FN_SYS_DBNAME
SQL_FN_SYS_IFNULL
SQL_FN_SYS_USERNAME
SQL_TABLE_TERM 1.0 テーブルのデータ ソース ベンダーの名前を持つ文字列。たとえば、"table" や "file" などです。

この文字列は、大文字、小文字、または大文字と小文字が混在している場合があります。

SQL-92 エントリ レベル準拠ドライバーは常に "table" を返します。
SQL_TIMEDATE_ADD_INTERVALS 2.0 ドライバーでサポートされているタイムスタンプ間隔と TIMESTAMPADD スカラー関数に関連付けられているデータ ソースを列挙する SQLUINTEGER ビットマスク。

サポートされる間隔を決定するには、次のビットマスクを使用します。
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

FIPS 遷移レベルに準拠したドライバーは、常に、これらのビットがすべて設定されているビットマスクを返します。
SQL_TIMEDATE_DIFF_INTERVALS 2.0 ドライバーでサポートされているタイムスタンプ間隔と TIMESTAMPDIFF スカラー関数に関連付けられているデータ ソースを列挙する SQLUINTEGER ビットマスク。

サポートされる間隔を決定するには、次のビットマスクを使用します。
SQL_FN_TSI_FRAC_SECOND
SQL_FN_TSI_SECOND
SQL_FN_TSI_MINUTE
SQL_FN_TSI_HOUR
SQL_FN_TSI_DAY
SQL_FN_TSI_WEEK
SQL_FN_TSI_MONTH
SQL_FN_TSI_QUARTER
SQL_FN_TSI_YEAR

FIPS 遷移レベルに準拠したドライバーは、常に、これらのビットがすべて設定されているビットマスクを返します。
SQL_TIMEDATE_FUNCTIONS 1.0 注: 情報の種類は ODBC 1.0 で導入されました。各ビットマスクには、そのビットマスクが導入されたバージョンでラベルが付けられます。

ドライバーおよび関連付けられているデータ ソースでサポートされるスカラー日時関数を列挙する SQLUINTEGER ビットマスク。

次のビットマスクを使用して、サポートされている日付と時刻の関数を決定します。
SQL_FN_TD_CURRENT_DATE (ODBC 3.0)
SQL_FN_TD_CURRENT_TIME (ODBC 3.0)
SQL_FN_TD_CURRENT_TIMESTAMP (ODBC 3.0)
SQL_FN_TD_CURDATE (ODBC 1.0)
SQL_FN_TD_CURTIME (ODBC 1.0)
SQL_FN_TD_DAYNAME (ODBC 2.0)
SQL_FN_TD_DAYOFMONTH (ODBC 1.0)
SQL_FN_TD_DAYOFWEEK (ODBC 1.0)
SQL_FN_TD_DAYOFYEAR (ODBC 1.0)
SQL_FN_TD_EXTRACT (ODBC 3.0)
SQL_FN_TD_HOUR (ODBC 1.0)
SQL_FN_TD_MINUTE (ODBC 1.0)
SQL_FN_TD_MONTH (ODBC 1.0)
SQL_FN_TD_MONTHNAME (ODBC 2.0)
SQL_FN_TD_NOW (ODBC 1.0)
SQL_FN_TD_QUARTER (ODBC 1.0)
SQL_FN_TD_SECOND (ODBC 1.0)
SQL_FN_TD_TIMESTAMPADD (ODBC 2.0)
SQL_FN_TD_TIMESTAMPDIFF (ODBC 2.0)
SQL_FN_TD_WEEK (ODBC 1.0)
SQL_FN_TD_YEAR (ODBC 1.0)
SQL_TXN_CAPABLE 1.0 注: 情報の種類は ODBC 1.0 で導入されました。各戻り値には、導入されたバージョンのラベルが付けられます。

ドライバーまたはデータ ソースでのトランザクションのサポートを記述する SQLUSMALLINT 値。
SQL_TC_NONE = トランザクションはサポートされていません。 (ODBC 1.0)
SQL_TC_DML = トランザクションには、データ操作言語 (DML) ステートメント (SELECT、INSERTUPDATEDELETE) のみを含めることができます。 トランザクションでデータ定義言語 (DDL) ステートメントが検出されると、エラーが発生します。 (ODBC 1.0)
SQL_TC_DDL_COMMIT = トランザクションには DML ステートメントのみを含めることができます。 トランザクションで検出された DDL ステートメント (CREATE TABLEDROP INDEX など) により、トランザクションがコミットされます。 (ODBC 2.0)
SQL_TC_DDL_IGNORE = トランザクションには DML ステートメントのみを含めることができます。 トランザクションで検出された DDL ステートメントは無視されます。 (ODBC 2.0)
SQL_TC_ALL = トランザクションには、任意の順序で DDL ステートメントと DML ステートメントを含めることができます。 (ODBC 1.0)

(SQL-92 ではトランザクションのサポートが必須であるため、SQL-92 準拠ドライバー [任意のレベル] はSQL_TC_NONEを返しません)。
SQL_TXN_ISOLATION_OPTION 1.0 ドライバーまたはデータ ソースから使用できるトランザクション分離レベルを列挙する SQLUINTEGER ビットマスク。

次のビットマスクは、サポートされているオプションを決定するためにフラグと共に使用されます。
SQL_TXN_READ_UNCOMMITTED
SQL_TXN_READ_COMMITTED
SQL_TXN_REPEATABLE_READ
SQL_TXN_SERIALIZABLE

これらの分離レベルの説明については、SQL_DEFAULT_TXN_ISOLATIONの説明を参照してください。

トランザクション分離レベルを設定するために、アプリケーションは SQLSetConnectAttr を呼び出してSQL_ATTR_TXN_ISOLATION属性を設定します。 詳細については、「SQLSetConnectAttr 関数」を参照してください

SQL-92 エントリ レベル準拠ドライバーは、常にサポートされているSQL_TXN_SERIALIZABLEを返します。 FIPS 遷移レベル準拠ドライバーは、サポートされているとおりに常にこれらのオプションをすべて返します。
SQL_UNION 2.0 UNION 句のサポートを列挙する SQLUINTEGER ビットマスク:
SQL_U_UNION = データ ソースは UNION 句をサポートしています。
SQL_U_UNION_ALL = データ ソースは UNION 句の ALL キーワードをサポートします。 (この場合、SQLGetInfo はSQL_U_UNIONとSQL_U_UNION_ALLの両方を返します)。

SQL-92 エントリ レベルに準拠したドライバーは、常にサポートされている両方のオプションを返します。
SQL_USER_NAME 1.0 特定のデータベースで使用される名前を持つ文字列。ログイン名とは異なる場合があります。
SQL_XOPEN_CLI_YEAR 3.0 ODBC ドライバー マネージャーのバージョンが完全に準拠している Open Group 仕様の公開年を示す文字列。

SQLGetInfo は、サポートされているオプションの一覧を *InfoValuePtr の SQLUINTEGER ビットマスクとして返します。 各オプションのビットマスクは、オプションがサポートされているかどうかを判断するためにフラグと共に使用されます。

たとえば、アプリケーションでは、次のコードを使用して、接続に関連付けられているドライバーで SUBSTRING スカラー関数がサポートされているかどうかを判断できます。

SQLGetInfo を使用する別の例については、「SQLTables 関数」を参照してください

SQLUINTEGER fFuncs;  
  
SQLGetInfo(hdbc,  
           SQL_STRING_FUNCTIONS,  
           (SQLPOINTER)&fFuncs,  
           sizeof(fFuncs),  
           NULL);  
  
// SUBSTRING supported  
if (fFuncs & SQL_FN_STR_SUBSTRING)  
   ;   // do something  
  
// SUBSTRING not supported  
else  
   ;   // do something else  

接続属性の設定を返す
SQLGetConnectAttr 関数

ドライバーが関数をサポートしているかどうかを判断する
SQLGetFunctions 関数

ステートメント属性の設定を返す
SQLGetStmtAttr 関数

データ ソースのデータ型に関する情報を返す
SQLGetTypeInfo 関数

参照

ODBC API リファレンス
ODBC ヘッダー ファイル