共用方式為


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 的值,而驅動程式會假設 *InfoValuePtr 的大小是 SQLUSMALLINT 或 SQLUINTEGER,視 InfoType 而定

傳回

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR或SQL_INVALID_HANDLE。

診斷

當 SQLGetInfo 傳回SQL_ERROR或SQL_SUCCESS_WITH_INFO時,藉由呼叫具有 SQL_HANDLE_DBC HandleType 的 SQLGetDiagRec ConnectionHandleHandleType 來取得相關聯的 SQLSTATE 值。 下表列出 SQLGetInfo 通常傳回的 SQLSTATE 值,並說明此函式內容中的每個值;表示法 “(DM)” 在驅動程式管理員傳回的 SQLSTATE 描述之前。 除非另有說明,否則與每個 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 呼叫 SQLExecuteSQLExecDirectSQLMoreResults,並傳回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 已超過連線逾時 在數據源回應要求之前,連線逾時期限已過期。 線上逾時期間是透過 SQLSetConnectAttr 來設定,SQL_ATTR_CONNECTION_TIMEOUT。
IM001 驅動程式不支援此函式 (DM) 對應至 ConnectionHandle驅動程式不支援 函式。

註解

目前定義的信息類型會顯示在本節稍後的「資訊類型」中;預期會定義更多功能來利用不同的數據源。 ODBC 會保留一系列信息類型;驅動程式開發人員必須保留值,才能從 Open Group 使用自己的驅動程式特定用途。 SQLGetInfo 不會執行任何 Unicode 轉換或取 (請參閱附錄 A:ODBC 程式設計人員參考的 ODBC 錯誤碼)以取得驅動程式定義的 InfoTypes。 如需詳細資訊,請參閱驅動程式特定的資料類型、描述項類型、資訊類型、診斷類型及屬性。 *InfoValuePtr 中傳回的資訊格式取決於 所要求的 InfoTypeSQLGetInfo 會以五種不同的格式之一傳回資訊:

  • 以 Null 結束的字元字串

  • SQLUSMALLINT 值

  • SQLUINTEGER 位掩碼

  • SQLUINTEGER 值

  • SQLUINTEGER 二進位值

在類型的描述中,會指出下列每個資訊類型的格式。 應用程式必須據以轉換 *InfoValuePtr 中傳回的值。 如需應用程式如何從 SQLUINTEGER 位掩碼擷取數據的範例,請參閱。

驅動程式必須針對下表中定義的每個資訊類型傳回值。 如果資訊類型不適用於驅動程式或數據源,驅動程式會傳回下表所列的其中一個值。

資訊類型
字元字串 (“Y” 或 “N”) "N"
字元字串(不是 “Y” 或 “N”) 空字串
SQLUSMALLINT 0
SQLUINTEGER 位掩碼或 SQLUINTEGER 二進位值 0L

例如,如果數據源不支援程式,SQLGetInfo 會針對與程式相關的 InfoType 值傳回下表所列的值

InfoType
SQL_PROCEDURES "N"
SQL_ACCESSIBLE_PROCEDURES "N"
SQL_MAX_PROCEDURE_NAME_LEN 0
SQL_PROCEDURE_TERM 空字串

SQLGetInfo 會針對 InfoType 的值傳回 SQLSTATE HY096 (無效的自變數值),這些值屬於 ODBC 所保留的資訊類型範圍,但不是由驅動程式支援的 ODBC 版本所定義。 若要判斷驅動程式所遵循的 ODBC 版本,應用程式會使用SQL_DRIVER_ODBC_VER資訊類型呼叫 SQLGetInfoSQLGetInfo 會針對 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

注意

實作 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 重新命名的資訊類型

InfoType 自變數的下列值已針對 ODBC 3.x 重新命名。

舊名稱 新名稱
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 中已被取代的信息類型

INFOType 自變數的下列值在 ODBC 3.x 中已被取代。 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 字元字串:“Y”,如果用戶可執行 SQLProcedures回的所有程式;如果可能會傳回使用者無法執行的程式,則為 “N”。
SQL_ACCESSIBLE_TABLES 1.0 字元字串:“Y” 如果使用者保證 SQLTable回的所有數據表的 SELECT 許可權;如果可能有數據表傳回,用戶無法存取,則為 “N”。
SQL_ACTIVE_ENVIRONMENTS 3.0 SQLUSMALLINT 值,指定驅動程式可支援的作用中環境數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。
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 SQLUINTEGER 位掩碼,列舉 ALTER DOMAIN 語句中的 子句,如數據源支援的 SQL-92 中所定義。 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 = <支援改變網域卸除網域><預設子句> (完整層級)

如果<支援新增網域條件約束,下列位會指定支持的<條件約束>屬性>(已設定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 SQLUINTEGER 位掩碼,列舉數據源所支援的 ALTER TABLE 語句中的 子句。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 = <支援 alter column><drop column default 子句> (中繼層級) (ODBC 3.0)
SQL_AT_DROP_COLUMN_RESTRICT = <支援 drop column> RESTRICT (FIPS 過渡層級) (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE (ODBC 3.0)
SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = <支援 drop column> RESTRICT (FIPS 過渡層級) (ODBC 3.0)
SQL_AT_SET_COLUMN_DEFAULT = <支援 alter column><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 異步操作有兩種類別:連接層級異步操作和語句層級異步操作。 如果驅動程式傳回SQL_ASYNC_NOTIFICATION_CAPABLE,它必須支援它可以異步執行的所有 API 通知。
SQL_BATCH_ROW_COUNT 3.0 SQLUINTEGER 位掩碼,列舉驅動程式相對於數據列計數可用性的行為。 下欄位遮罩會與資訊類型搭配使用:

SQL_BRC_ROLLED_UP = 連續 INSERT、DELETE 或 UPDATE 語句的數據列計數會匯總成一個。 如果未設定此位,則每個語句都可以使用數據列計數。
SQL_BRC_PROCEDURES = 在預存程式中執行批次時,如果有的話,可以使用數據列計數。 如果數據列計數可用,則可以根據SQL_BRC_ROLLED_UP位來匯總或個別使用。
SQL_BRC_EXPLICIT = 資料列計數,如果有的話,只要透過呼叫 SQLExecuteSQLExecDirect 直接執行批次即可使用。 如果數據列計數可用,則可以根據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 = 與一個語句相關聯的書籤可以與另一個語句搭配使用。 除非指定SQL_BP_CLOSE或SQL_BP_DROP,否則第一個語句上的游標必須開啟。
SQL_CATALOG_LOCATION 2.0 SQLUSMALLINT 值,指出目錄在限定資料表名稱中的位置:

SQL_CL_START
SQL_CL_END
例如,Xbase 驅動程式會傳回SQL_CL_START,因為目錄 (catalog) 名稱位於數據表名稱的開頭,如同 \EMPDATA\EMP。DBF。 ORACLE Server 驅動程式會傳回SQL_CL_END,因為目錄位於數據表名稱的結尾,如同在 ADMIN 中一樣。EMP@EMPDATA。

SQL-92 完全符合層級的驅動程式一律會傳回SQL_CL_START。 如果數據源不支援目錄,則會傳回值 0。 若要判斷是否支援目錄,應用程式會使用SQL_CATALOG_NAME資訊類型呼叫 SQLGetInfo

InfoType 已從 ODBC 2.0 InfoType SQL_QUALIFIER_LOCATION重新命名為 ODBC 3.0
SQL_CATALOG_NAME 3.0 字元字串:如果伺服器支援目錄名稱,則為 “Y”,如果不支援,則為 “N”。

SQL-92 完整層級一致性驅動程式一律會傳回 “Y”。
SQL_CATALOG_NAME_SEPARATOR 1.0 字元字串:數據源所定義的字元或字元,是目錄名稱與後面或前面之限定名稱元素之間的分隔符。

如果數據源不支援目錄,則會傳回空字串。 若要判斷是否支援目錄,應用程式會使用SQL_CATALOG_NAME資訊類型呼叫 SQLGetInfo 。 SQL-92 完全符合層級的驅動程式一律會傳回 “.”。

InfoType 已從 ODBC 2.0 InfoType SQL_QUALIFIER_NAME_SEPARATOR重新命名 ODBC 3.0
SQL_CATALOG_TERM 1.0 具有目錄數據源廠商名稱的字元字串;例如,“database” 或 “directory”。 此字串可以是大寫、小寫或混合大小寫。

如果數據源不支援目錄,則會傳回空字串。 若要判斷是否支援目錄,應用程式會使用SQL_CATALOG_NAME資訊類型呼叫 SQLGetInfo 。 SQL-92 完整層級一致性驅動程式一律會傳回 “catalog”。

InfoType 已從 ODBC 2.0 InfoType SQL_QUALIFIER_TERM重新命名 ODBC 3.0
SQL_CATALOG_USAGE 2.0 SQLUINTEGER 位掩碼,列舉可使用目錄的 語句。

下列位掩碼可用來判斷可以使用目錄的位置:
SQL_CU_DML_STATEMENTS = 所有數據操作語言語句都支持目錄:SELECT、INSERT、UPDATEDELETE,如果支援,SELECT FOR UPDATE 和定位更新和刪除語句。
SQL_CU_PROCEDURE_INVOCATION = ODBC 程式調用語句支持目錄。
SQL_CU_TABLE_DEFINITION = 所有資料表定義語句都支持目錄: CREATE TABLECREATE VIEWALTER TABLEDROP TABLEDROP VIEW
SQL_CU_INDEX_DEFINITION = 所有索引定義語句都支持目錄: CREATE INDEXDROP INDEX
SQL_CU_PRIVILEGE_DEFINITION = 所有許可權定義語句都支持目錄: GRANTREVOKE

如果數據源不支援目錄,則會傳回值 0。 若要判斷是否支援目錄,應用程式會使用SQL_CATALOG_NAME資訊類型呼叫 SQLGetInfo 。 SQL-92 完整層級一致性驅動程式一律會傳回已設定所有位的位掩碼。

InfoType 已從 ODBC 2.0 InfoType SQL_QUALIFIER_USAGE重新命名為 ODBC 3.0
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 SQLUSMALLINT 值,指出資料源如何處理 NULL 值字元資料類型數據行與非 NULL 值字元資料類型資料行的串連:
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 純量函式。 如果位掩碼等於零,數據源不支援從具名型別的數據進行任何轉換,包括轉換成相同的數據類型。

例如,若要判斷數據源是否支援將SQL_INTEGER數據轉換成SQL_BIGINT數據類型,應用程式會使用 infoType 的 SQL_CONVERT_INTEGER 呼叫 SQLGetInfo 應用程式會 使用傳回的位掩碼和SQL_CVT_BIGINT來執行AND 作業。 如果產生的值為非零值,則支持轉換。

下欄位遮罩可用來判斷支援的轉換:
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 SQLUINTEGER 位掩碼,列舉 CREATE ASSERTION 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
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 SQLUINTEGER 位掩碼,列舉 CREATE CHARACTER SET 語句中的子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_CCS_CREATE_CHARACTER_SET
SQL_CCS_COLLATE_CLAUSE
SQL_CCS_LIMITED_COLLATION

SQL-92 完全符合層級的驅動程式一律會傳回所有支持的選項。 “0” 的傳回值表示 不支援 CREATE CHARACTER SET 語句。
SQL_CREATE_COLLATION 3.0 SQLUINTEGER 位掩碼,列舉 CREATE COLLATION 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_CCOL_CREATE_COLLATION

SQL-92 完全符合層級的驅動程式一律會傳回此選項,如支援。 “0” 的傳回值表示 不支援 CREATE COLLATION 語句。
SQL_CREATE_DOMAIN 3.0 SQLUINTEGER 位掩碼,列舉 CREATE DOMAIN 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
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 SQLUINTEGER 位掩碼,列舉 CREATE SCHEMA 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
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 SQLUINTEGER 位掩碼,列舉 CREATE TABLE 語句中的 子句,如數據源支援的 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 SQLUINTEGER 位掩碼,列舉 CREATE TRANSLATION 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_CTR_CREATE_TRANSLATION

SQL-92 完整層級一致性驅動程式一律會傳回支持這些選項。 傳回值 「0」 表示 不支援 CREATE TRANSLATION 語句。
SQL_CREATE_VIEW 3.0 SQLUINTEGER 位掩碼,列舉 CREATE VIEW 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
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 SQLUSMALLINT 值,指出 COMMIT 作業如何影響數據源中的數據指標和備妥語句(認可交易時數據源的行為)。

此屬性的值將反映下一個設定的目前狀態:SQL_COPT_SS_PRESERVE_CURSORS。
SQL_CB_DELETE = 關閉資料指標並刪除備妥的語句。 若要再次使用數據指標,應用程式必須重新準備並重新執行 語句。
SQL_CB_CLOSE = 關閉資料指標。 針對備妥的語句,應用程式可以在語句上呼叫 SQLExecute ,而不需再次呼叫 SQLPrepare 。 SQL ODBC 驅動程式的預設值為 SQL_CB_CLOSE。 這表示當您認可交易時,SQL ODBC 驅動程式將會關閉數據指標。
SQL_CB_PRESERVE = 在 COMMIT 作業之前的位置保留資料指標。 應用程式可以繼續擷取數據,也可以關閉數據指標並重新執行 語句,而不需重新準備。
SQL_CURSOR_ROLLBACK_BEHAVIOR 1.0 SQLUSMALLINT 值,指出 ROLLBACK 作業如何影響數據源中的數據指標和備妥語句:
SQL_CB_DELETE = 關閉資料指標並刪除備妥的語句。 若要再次使用數據指標,應用程式必須重新準備並重新執行 語句。
SQL_CB_CLOSE = 關閉資料指標。 針對備妥的語句,應用程式可以在語句上呼叫 SQLExecute ,而不需再次呼叫 SQLPrepare
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 字元字串。 如果數據源設定為只讀模式,則為 “Y”,否則為 “N”。

此特性只與數據源本身有關;它不是可存取數據源的驅動程式特性。 讀取/寫入的驅動程式可以與唯讀數據源搭配使用。 如果驅動程式是只讀的,其所有數據源都必須是唯讀的,而且必須傳回SQL_DATA_SOURCE_READ_ONLY。
SQL_DATABASE_NAME 1.0 如果數據源定義名為 「database」 的具名物件,則為目前資料庫名稱的字元字串。

在 ODBC 3.x 中,呼叫具有 attribute 自變數的 SQLGetConnectAttr,也可以呼叫這個 InfoType 傳回的值SQL_ATTR_CURRENT_CATALOG。
SQL_DATETIME_LITERALS 3.0 SQLUINTEGER 位掩碼,列舉數據源支援的 SQL-92 datetime 常值。 請注意,這些是 SQL-92 規格中列出的日期時間常值,與 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 產品的版本。 版本的格式為##.##.#####,其中前兩個數位是主要版本,接下來的兩位數是次要版本,最後四位數是發行版本。 驅動程式必須以這個形式轉譯 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 值,指出驅動程式或數據源所支援的預設交易隔離等級,如果數據源不支援交易,則為零。 下列詞彙可用來定義交易隔離等級:
骯髒的讀取 交易 1 會變更一個數據列。 交易 2 會先讀取已變更的數據列,再交易 1 認可變更。 如果交易 1 回復變更,交易 2 將會讀取被視為從未存在的數據列。
不可重複的讀取 交易 1 會讀取一個數據列。 交易 2 會更新或刪除該數據列,並認可此變更。 如果交易 1 嘗試重新讀取資料列,它會收到不同的數據列值,或發現數據列已刪除。
虛設 交易 1 會讀取一組符合某些搜尋準則的數據列。 交易 2 會產生一或多個符合搜尋準則的數據列(透過插入或更新)。 如果交易 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 完整層級一致性驅動程式通常會傳回 “Y”,因為它將支援 DESCRIBE INPUT 語句。 由於這不會直接指定基礎 SQL 支援,但是,即使 SQL-92 完全符合層級的驅動程式也不支援描述參數。
SQL_DM_VER 3.0 具有驅動程式管理員版本的字元字串。 版本的格式為 ##.##.#.##,其中:
第一組兩位數是主要 ODBC 版本,如常數SQL_SPEC_MAJOR所指定。
第二組兩位數是次要 ODBC 版本,如常數SQL_SPEC_MINOR所指定。
第三組四位數是驅動程式管理員主要組建編號。
最後一組四位數是驅動程式管理員次要組建編號。
Windows 7 驅動程式管理員版本為 03.80。 Windows 8 驅動程式管理員版本為 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 SQLULEN 值,驅動程式的環境句柄或連接句柄,由自變數 InfoType 決定。

這些資訊類型是由驅動程式管理員單獨實作。
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 值,驅動程式的語句句柄是由 Driver Manager 語句句柄所決定,該句柄必須從應用程式傳遞至 *InfoValuePtr 中的輸入。 在此情況下, InfoValuePtr 既是輸入和輸出自變數。 傳入 *InfoValuePtr 的輸入語句句柄必須在自變數 ConnectionHandle 上配置。

應用程式應該先建立 Driver Manager 語句句柄的複本,再呼叫 具有這項資訊類型的 SQLGetInfo ,以確保不會覆寫輸出上的句柄。

此資訊類型是由驅動程式管理員單獨實作。
SQL_DRIVER_NAME 1.0 具有用來存取數據源之驅動程序檔名的字元字串。
SQL_DRIVER_ODBC_VER 2.0 具有驅動程式支援 ODBC 版本的字元字串。 版本的格式為##.##,其中前兩個數位是主要版本,而接下來的兩位數是次要版本。 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 具有驅動程式版本的字元字串,並選擇性地描述驅動程式。 版本至少是 ##.##.#####,其中前兩個數位是主要版本,接下來的兩位數是次要版本,最後四位數是發行版本。
SQL_DROP_ASSERTION 3.0 SQLUINTEGER 位掩碼,列舉DROP ASSERTION語句中的子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DA_DROP_ASSERTION

SQL-92 完全符合層級的驅動程式一律會傳回此選項,如支援。
SQL_DROP_CHARACTER_SET 3.0 SQLUINTEGER 位掩碼,列舉DROP CHARACTER SET 語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DCS_DROP_CHARACTER_SET

SQL-92 完全符合層級的驅動程式一律會傳回此選項,如支援。
SQL_DROP_COLLATION 3.0 SQLUINTEGER 位掩碼,列舉DROP COLLATION語句中的子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DC_DROP_COLLATION

SQL-92 完全符合層級的驅動程式一律會傳回此選項,如支援。
SQL_DROP_DOMAIN 3.0 SQLUINTEGER 位掩碼,列舉DROP DOMAIN語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DD_DROP_DOMAIN
SQL_DD_CASCADE
SQL_DD_RESTRICT

SQL-92 中繼層級一致性驅動程式一律會傳回所有支持的選項。
SQL_DROP_SCHEMA 3.0 SQLUINTEGER 位掩碼,列舉DROP SCHEMA語句中的 子句,如數據源支援的 SQL-92 中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DS_DROP_SCHEMA
SQL_DS_CASCADE
SQL_DS_RESTRICT

SQL-92 中繼層級一致性驅動程式一律會傳回所有支持的選項。
SQL_DROP_TABLE 3.0 SQLUINTEGER 位掩碼,列舉DROP TABLE語句中的 子句,如數據源支援的SQL-92中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DT_DROP_TABLE
SQL_DT_CASCADE
SQL_DT_RESTRICT

FIPS 過渡層級一致性驅動程式一律會傳回所有支持的選項。
SQL_DROP_TRANSLATION 3.0 SQLUINTEGER 位掩碼,列舉DROP TRANSLATION語句中的子句,如數據源支援的SQL-92中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DTR_DROP_TRANSLATION

SQL-92 完全符合層級的驅動程式一律會傳回此選項,如支援。
SQL_DROP_VIEW 3.0 SQLUINTEGER 位掩碼,列舉DROP VIEW語句中的 子句,如數據源支援的SQL-92中所定義。

下列位掩碼可用來判斷支援的子句:
SQL_DV_DROP_VIEW
SQL_DV_CASCADE
SQL_DV_RESTRICT

FIPS 過渡層級一致性驅動程式一律會傳回所有支持的選項。
SQL_DYNAMIC_CURSOR_ATTRIBUTES1 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援之動態數據指標的屬性。 此位掩碼包含屬性的第一個子集;如需第二個子集,請參閱SQL_DYNAMIC_CURSOR_ATTRIBUTES2。

下欄位掩碼可用來判斷支援的屬性:
SQL_CA1_NEXT = SQL_FETCH_NEXT的 FetchOrientation 自變數支援在數據指標為動態數據指標時,呼叫 SQLFetchScroll
SQL_CA1_ABSOLUTE = SQL_FETCH_FIRST、SQL_FETCH_LAST和SQL_FETCH_ABSOLUTE的 FetchOrientation 自變數,在數據指標是動態數據指標時, SQLFetchScroll 的呼叫支援。 (要擷取的數據列集與目前數據指標位置無關。
SQL_CA1_RELATIVE = SQL_FETCH_PRIOR和SQL_FETCH_RELATIVE的 FetchOrientation 自變數,在數據指標為動態數據指標時, 支援對 SQLFetchScroll 的呼叫。 (將會擷取的數據列集取決於目前的數據指標位置。請注意,這與SQL_FETCH_NEXT分開,因為在僅向前數據指標中,僅支援SQL_FETCH_NEXT。
SQL_CA1_BOOKMARK = 當數據指標是動態數據指標時,SQLFetchScroll 呼叫中支援SQL_FETCH_BOOKMARK的 FetchOrientation 自變數。
SQL_CA1_LOCK_EXCLUSIVE = SQL_LOCK_EXCLUSIVE的 LockType 自變數支援在數據指標為動態數據指標時,呼叫 SQLSetPos
SQL_CA1_LOCK_NO_CHANGE = 當數據指標是動態數據指標時,SQLSetPos 的呼叫支援SQL_LOCK_NO_CHANGE的 LockType 自變數。
SQL_CA1_LOCK_UNLOCK = 當數據指標是動態數據指標時,SQLSetPos 呼叫中支援SQL_LOCK_UNLOCK的 LockType 自變數。
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 = 當數據指標是動態數據指標時,SQLBulkOperations 的呼叫支援SQL_FETCH_BY_BOOKMARK的 Operation 自變數。

SQL-92 中繼層級一致性驅動程式通常會傳回支援的SQL_CA1_NEXT、SQL_CA1_ABSOLUTE和SQL_CA1_RELATIVE選項,因為它支援透過內嵌 SQL FETCH 語句的可捲動數據指標。 由於這不會直接判斷基礎 SQL 支援,但是,即使 SQL-92 中繼層級一致性驅動程式也不支援可捲動的數據指標。
SQL_DYNAMIC_CURSOR_ATTRIBUTES2 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援之動態數據指標的屬性。 此位掩碼包含屬性的第二個子集;如需第一個子集,請參閱SQL_DYNAMIC_CURSOR_ATTRIBUTES1。

下欄位掩碼可用來判斷支援的屬性:
SQL_CA2_READ_ONLY_CONCURRENCY = 支援唯讀動態數據指標,其中不允許任何更新。 (動態數據指標可以SQL_CONCUR_READ_ONLY SQL_ATTR_CONCURRENCY語句屬性)。
SQL_CA2_LOCK_CONCURRENCY = 動態數據指標,使用足以確保支持數據列的最低鎖定層級。 (動態數據指標可以SQL_CONCUR_LOCK SQL_ATTR_CONCURRENCY語句屬性。這些鎖定必須與SQL_ATTR_TXN_ISOLATION連接屬性所設定的交易隔離等級一致。
SQL_CA2_OPT_ROWVER_CONCURRENCY = 支援使用開放式並行存取控件比較數據列版本的動態數據指標。 (動態數據指標可以SQL_CONCUR_ROWVER SQL_ATTR_CONCURRENCY語句屬性。
SQL_CA2_OPT_VALUES_CONCURRENCY = 支援使用開放式並行存取控件比較值的動態數據指標。 (動態數據指標可以SQL_CONCUR_VALUES SQL_ATTR_CONCURRENCY語句屬性。
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語句屬性會影響 SELECTINSERTDELETEUPDATE 語句,以及 CATALOG 結果集。
SQL_CA2_CRC_EXACT = 當數據指標是動態數據指標時,SQL_DIAG_CURSOR_ROW_COUNT診斷欄位中提供確切的數據列計數。
SQL_CA2_CRC_APPROXIMATE = 當數據指標是動態數據指標時,SQL_DIAG_CURSOR_ROW_COUNT診斷欄位中有大約的數據列計數可用。
SQL_CA2_SIMULATE_NON_UNIQUE = 驅動程式不保證當數據指標是動態數據指標時,模擬位置更新或刪除語句只會影響一個數據列;這是應用程式負責保證這一點。 (如果語句影響一個以上的資料列, SQLExecuteSQLExecDirect 會傳回 SQLSTATE 01001 [數據指標作業衝突]。若要設定此行為,應用程式會呼叫 SQLSetStmtAttr ,並將 SQL_ATTR_SIMULATE_CURSOR 屬性設定為 SQL_SC_NON_UNIQUE。
SQL_CA2_SIMULATE_TRY_UNIQUE = 驅動程式會嘗試保證當數據指標是動態數據指標時,模擬位置更新或刪除語句只會影響一個數據列。 驅動程式一律會執行這類語句,即使它們可能會影響多個數據列,例如沒有唯一索引鍵時。 (如果語句影響一個以上的資料列, SQLExecuteSQLExecDirect 會傳回 SQLSTATE 01001 [數據指標作業衝突]。若要設定此行為,應用程式會呼叫 SQLSetStmtAttr ,並將 SQL_ATTR_SIMULATE_CURSOR 屬性設定為 SQL_SC_TRY_UNIQUE。
SQL_CA2_SIMULATE_UNIQUE = 驅動程式保證當數據指標是動態數據指標時,模擬位置更新或刪除語句只會影響一個數據列。 如果驅動程式無法保證給定語句的這個值, SQLExecDirectSQLPrepare 會傳回 SQLSTATE 01001 (數據指標作業衝突)。 若要設定此行為,應用程式會呼叫 SQLSetStmtAttr ,並將 SQL_ATTR_SIMULATE_CURSOR 屬性設定為 SQL_SC_UNIQUE。
SQL_EXPRESSIONS_IN_ORDERBY 1.0 如果數據源支援 ORDER BY 清單中的運算式,則為字元字串:“Y”。如果不是,則為 “N”。
SQL_FILE_USAGE 2.0 SQLUSMALLINT 值,指出單一層驅動程式如何直接處理數據源中的檔案:
SQL_FILE_NOT_SUPPORTED = 驅動程式不是單層驅動程式。 例如,ORACLE 驅動程式是兩層驅動程式。
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 位掩碼,描述驅動程式所支援之正向數據指標的屬性。 此位掩碼包含屬性的第一個子集;如需第二個子集,請參閱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 位掩碼,描述驅動程式所支援之正向數據指標的屬性。 此位掩碼包含屬性的第二個子集;如需第一個子集,請參閱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 SQLUINTEGER 位掩碼列舉 SQLGetData延伸模組。

下列位掩碼會與旗標搭配使用,以判斷驅動程序支援 SQLGetData 的通用擴充功能:
SQL_GD_ANY_COLUMN = SQLGetData 可以針對任何未系結的數據行呼叫,包括最後一個系結數據行之前的數據行。 請注意,除非同時傳回SQL_GD_ANY_ORDER,否則必須依遞增數據行編號的順序呼叫數據行。
SQL_GD_ANY_ORDER = SQLGetData 可以依任何順序針對未系結的數據行呼叫。 請注意, 除非也會傳回SQL_GD_ANY_COLUMN,否則只能針對最後一個系結數據行之後的數據行呼叫 SQLGetData
SQL_GD_BLOCK = SQLGetData 可以在使用 SQLSetPos 定位到該數據列之後,針對區塊中任何數據列中未系結的數據行呼叫 #1。其中數據列集大小大於 1。
SQL_GD_BOUND = SQLGetData 除了未系結的數據行之外,還可以呼叫系結數據行。 除非驅動程式也會傳回SQL_GD_ANY_COLUMN,否則驅動程式無法傳回此值。
SQL_GD_OUTPUT_PARAMS = SQLGetData 可以呼叫 以傳回輸出參數值。 如需詳細資訊,請參閱使用 SQLGetData 擷取輸出參數

SQLGetData 只需要從最後一個系結數據行之後發生的未系結數據行傳回數據、依增加數據行數的順序呼叫,而且不在數據列區塊中的數據列中。

如果驅動程式支援書籤(固定長度或可變長度),它必須支援在數據行 0 上呼叫 SQLGetData 。 不論驅動程式使用 SQL_GETDATA_EXTENSIONS InfoTypeSQLGetInfo 的呼叫傳回什麼,都需要此支援。
SQL_GROUP_BY 2.0 SQLUSMALLINT 值,指定 GROUP BY 子句中的數據行與選取清單中的非匯總數據行之間的關聯性:
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 語句中做為引號 (delimited) 識別碼的開頭和結尾分隔符使用的字元字串。 (將做為自變數傳遞至 ODBC 函式的識別元不必加上引號。如果數據源不支援引號標識符,則會傳回空白。

當連接屬性SQL_ATTR_METADATA_ID設定為SQL_TRUE時,此字元字串也可用於引用目錄函式自變數。

因為 SQL-92 中的識別碼引號字元是雙引號 (),因此嚴格符合 SQL-92 的驅動程式一律會傳回雙引號字元。
SQL_INDEX_KEYWORDS 3.0 SQLUINTEGER 位掩碼,列舉驅動程式所支援的 CREATE INDEX 語句中的關鍵詞:
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 SQLUINTEGER 位掩碼,列舉驅動程式所支援之INFORMATION_SCHEMA中的檢視。 中的檢視和 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”。

InfoType 已從 ODBC 2.0 InfoType SQL_ODBC_SQL_OPT_IEF重新命名為 ODBC 3.0
SQL_KEYSET_CURSOR_ATTRIBUTES1 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援之索引鍵集數據指標的屬性。 此位掩碼包含屬性的第一個子集;如需第二個子集,請參閱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(並在描述中以「索引鍵集驅動數據指標」取代為「動態數據指標」)。

SQL-92 中繼層級一致性驅動程式通常會傳回支援的SQL_CA1_NEXT、SQL_CA1_ABSOLUTE和SQL_CA1_RELATIVE選項,因為驅動程式支援透過內嵌 SQL FETCH 語句的可捲動數據指標。 由於這不會直接判斷基礎 SQL 支援,但是,即使 SQL-92 中繼層級一致性驅動程式也不支援可捲動的數據指標。
SQL_KEYSET_CURSOR_ATTRIBUTES2 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援之索引鍵集數據指標的屬性。 此位掩碼包含屬性的第二個子集;如需第一個子集,請參閱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(並在描述中以「索引鍵集驅動數據指標」取代為「動態數據指標」)。
SQL_KEYWORDS 2.0 字元字串,其中包含所有數據源特定關鍵詞的逗號分隔清單。 此清單不包含數據源和 ODBC 所使用的 ODBC 或關鍵詞特定的關鍵詞。 此清單代表所有保留關鍵詞;互通的應用程式不應該在物件名稱中使用這些字。

如需 ODBC 關鍵詞的清單,請參閱附錄 C:SQL 文法中的保留關鍵詞。 #define 值SQL_ODBC_KEYWORDS包含以逗號分隔的 ODBC 關鍵詞清單。
SQL_LIKE_ESCAPE_CLAUSE 2.0 如果數據源在 LIKE 述詞中支援百分比字元 、 底線字元 (_) 的逸出字元,且驅動程式支援 ODBC 語法來定義 LIKE 述詞逸出字元,則為字元字串:“Y” ;否則為 「N」。。
SQL_MAX_ASYNC_CONCURRENT_STATEMENTS 3.0 SQLUINTEGER 值,指定驅動程式可以在指定連接上支援的異步模式中作用中並行語句數目上限。 如果沒有特定的限制或限制未知,這個值會是零。
SQL_MAX_BINARY_LITERAL_LEN 2.0 SQLUINTEGER 值,指定 SQL 語句中二進位常值的最大長度(十六進位字元數目,不包括 SQLGetTypeInfo回的常值前置詞和後綴)。 例如,二進位常值0xFFAA長度為 4。 如果沒有最大長度或長度未知,這個值會設定為零。
SQL_MAX_CATALOG_NAME_LEN 1.0 SQLUSMALLINT 值,指定資料源中目錄名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。

FIPS 完全符合層級的驅動程式會傳回至少 128 個。

InfoType 已從 ODBC 2.0 InfoType SQL_MAX_QUALIFIER_NAME_LEN重新命名為 ODBC 3.0
SQL_MAX_CHAR_LITERAL_LEN 2.0 SQLUINTEGER 值,指定 SQL 語句中字元常值的最大長度(字元數,不包括 SQLGetTypeInfo回的常值前置詞和後綴)。 如果沒有最大長度或長度未知,這個值會設定為零。
SQL_MAX_COLUMN_NAME_LEN 1.0 SQLUSMALLINT 值,指定資料源中數據行名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 18 個。 FIPS 中繼層級一致性驅動程式會傳回至少 128 個。
SQL_MAX_COLUMNS_IN_GROUP_BY 2.0 SQLUSMALLINT 值,指定 GROUP BY 子句中允許的數據行數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 6 個。 FIPS 中繼層級一致性驅動程式會傳回至少 15 個。
SQL_MAX_COLUMNS_IN_INDEX 2.0 SQLUSMALLINT 值,指定索引中允許的數據行數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。
SQL_MAX_COLUMNS_IN_ORDER_BY 2.0 SQLUSMALLINT 值,指定 ORDER BY 子句中允許的數據行數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 6 個。 FIPS 中繼層級一致性驅動程式會傳回至少 15 個。
SQL_MAX_COLUMNS_IN_SELECT 2.0 SQLUSMALLINT 值,指定選取清單中允許的數據行數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式將會傳回至少 100 個。 FIPS 中繼層級一致性驅動程式會傳回至少 250 個。
SQL_MAX_COLUMNS_IN_TABLE 2.0 SQLUSMALLINT 值,指定資料表中允許的數據行數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式將會傳回至少 100 個。 FIPS 中繼層級一致性驅動程式會傳回至少 250 個。
SQL_MAX_CONCURRENT_ACTIVITIES 1.0 SQLUSMALLINT 值,指定驅動程式可支持連接的作用中語句數目上限。 如果語句有擱置中的結果,語句會定義為作用中,其「結果」一詞表示 SELECT 作業中的數據列或 INSERTUPDATEDELETE 作業影響的數據列(例如數據列計數),或如果它處於NEED_DATA狀態。 這個值可以反映驅動程式或數據源所施加的限制。 如果沒有指定的限制或限制未知,這個值會設定為零。

InfoType 已從 ODBC 2.0 InfoType SQL_ACTIVE_STATEMENTS重新命名為 ODBC 3.0
SQL_MAX_CURSOR_NAME_LEN 1.0 SQLUSMALLINT 值,指定資料源中數據指標名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 18 個。 FIPS 中繼層級一致性驅動程式會傳回至少 128 個。
SQL_MAX_DRIVER_CONNECTIONS 1.0 SQLUSMALLINT 值,指定驅動程式可支持環境的作用中聯機數目上限。 這個值可以反映驅動程式或數據源所施加的限制。 如果沒有指定的限制或限制未知,這個值會設定為零。

InfoType 已從 ODBC 2.0 InfoType SQL_ACTIVE_CONNECTIONS重新命名為 ODBC 3.0
SQL_MAX_IDENTIFIER_LEN 3.0 SQLUSMALLINT,指出數據源針對使用者定義名稱所支援的字元大小上限。

符合 FIPS 入門層級的驅動程式會傳回至少 18 個。 FIPS 中繼層級一致性驅動程式會傳回至少 128 個。
SQL_MAX_INDEX_SIZE 2.0 SQLUINTEGER 值,指定索引之合併欄位中允許的最大位元元組數目。 如果沒有指定的限制或限制未知,這個值會設定為零。
SQL_MAX_PROCEDURE_NAME_LEN 1.0 SQLUSMALLINT 值,指定資料源中程式名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。
SQL_MAX_ROW_SIZE 2.0 SQLUINTEGER 值,指定資料表中單一數據列的最大長度。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 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 值,指定資料源中架構名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 18 個。 FIPS 中繼層級一致性驅動程式會傳回至少 128 個。

InfoType 已從 ODBC 2.0 InfoType SQL_MAX_OWNER_NAME_LEN重新命名 ODBC 3.0
SQL_MAX_STATEMENT_LEN 2.0 SQLUINTEGER 值,指定 SQL 語句的最大長度(包括空格符數目)。 如果沒有最大長度或長度未知,這個值會設定為零。
SQL_MAX_TABLE_NAME_LEN 1.0 SQLUSMALLINT 值,指定資料源中數據表名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 18 個。 FIPS 中繼層級一致性驅動程式會傳回至少 128 個。
SQL_MAX_TABLES_IN_SELECT 2.0 SQLUSMALLINT 值,指定 SELECT 語句之 FROM 子句中允許的數據表數目上限。 如果沒有指定的限制或限制未知,這個值會設定為零。

符合 FIPS 入門層級的驅動程式會傳回至少 15 個。 FIPS 中繼層級一致性驅動程式會傳回至少50個。
SQL_MAX_USER_NAME_LEN 2.0 SQLUSMALLINT 值,指定資料源中用戶名稱的最大長度。 如果沒有最大長度或長度未知,這個值會設定為零。
SQL_MULT_RESULT_SETS 1.0 字元字串:如果數據源支援多個結果集,則為 “Y”,如果沒有,則為 “N”。

如需多個結果集的詳細資訊,請參閱 多個結果
SQL_MULTIPLE_ACTIVE_TXN 1.0 字元字串:「Y」 如果驅動程式同時支援一個以上的使用中交易,則為 「N」。,如果隨時只能有一個交易作用中。

針對此資訊類型傳回的信息不適用於分散式交易的情況。
SQL_NEED_LONG_DATA_LEN 2.0 字元字串:“Y”,如果數據源需要長數據值的長度(數據類型是SQL_LONGVARCHAR、SQL_LONGVARBINARY或長數據源特定數據類型),則為 ,如果不是,則為 “N”。 如需詳細資訊,請參閱 SQLBindParameter 函 式和 SQLSetPos 函式
SQL_NON_NULLABLE_COLUMNS 1.0 SQLUSMALLINT 值,指定資料來源是否支援資料行中的 NOT NULL:
SQL_NNC_NULL = 所有數據行都必須可為 Null。
SQL_NNC_NON_NULL = 資料行不可為 Null。 (數據源支援CREATE TABLE 語句中的 NOT NULL 數據行條件約束。

SQL-92 符合入門層級的驅動程式將會傳回SQL_NNC_NON_NULL。
SQL_NULL_COLLATION 2.0 SQLUSMALLINT 值,指定 NULL 在結果集中排序的位置:
不論 ASC 或 DESC 關鍵詞為何,SQL_NC_END = NULL 都會在結果集的結尾排序。
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 SQLUINTEGER 值,指出驅動程式符合的 ODBC 3*.x* 介面層級。

SQL_OIC_CORE:所有 ODBC 驅動程式應符合的最低層級。 此層級包含基本介面元素,例如連接函式、準備和執行SQL語句的函式、基本結果集元數據函式、基本類別目錄函式等等。
SQL_OIC_LEVEL1:包括核心標準合規性層級功能,以及可捲動的數據指標、書籤、定位更新和刪除等層級。
SQL_OIC_LEVEL2:層級包括層級 1 標準合規性層級功能,以及敏感性數據指標等進階功能;依書籤更新、刪除和重新整理;預存程序支援;主鍵和外鍵的目錄函式;多重目錄支援;等等。

如需詳細資訊,請參閱 介面一致性層級
SQL_ODBC_VER 1.0 具有驅動程式管理員所符合之 ODBC 版本的字元字串。 版本的格式為##.##.0000,其中前兩個數位是主要版本,而接下來的兩位數是次要版本。 這隻會在驅動程式管理員中實作。
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 比較運算符。 如果未設定此位,則只能在外部聯接中使用等號 (=) 比較運算符。

如果不支持這些選項,則不支援任何外部聯結子句。

如需 SELECT 語句中關係型聯結運算符支援的相關信息,如 SQL-92 所定義,請參閱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 = 每個參數集都有可用的個別數據列計數。 這在概念上相當於產生一批 SQL 語句的驅動程式,其中一個用於數位中設定的每個參數。 您可以使用SQL_PARAM_STATUS_PTR描述元字段來擷取擴充錯誤資訊。
SQL_PARC_NO_BATCH = 只有一個數據列計數可用,這是針對整個參數陣列執行 語句所產生的累計數據列計數。 這在概念上相當於將語句與完整參數陣列一起視為一個不可部分完成的單位。 錯誤的處理方式與執行一個語句相同。
SQL_PARAM_ARRAY_SELECTS 3.0 SQLUINTEGER 列舉驅動程式屬性,以取得參數化執行中結果集的可用性。 具有下列值:
SQL_PAS_BATCH = 每個參數集都有一個結果集可用。 這在概念上相當於產生一批 SQL 語句的驅動程式,其中一個用於數位中設定的每個參數。
SQL_PAS_NO_BATCH = 只有一個結果集可用,這代表針對參數完整數位列執行 語句所產生的累計結果集。 這在概念上相當於將語句與完整參數陣列一起視為一個不可部分完成的單位。
SQL_PAS_NO_SELECT = 驅動程式不允許使用參數數位來執行結果集產生語句。
SQL_POS_OPERATIONS 2.0 SQLINTEGER 位掩碼,列舉 SQLSetPos 中的支持作業。

下列位掩碼會與旗標搭配使用,以判斷支援哪些選項。
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 具有架構之數據源廠商名稱的字元字串;例如,「擁有者」、「授權標識碼」或「架構」。

字元字串可以在大寫、小寫或混合大小寫中傳回。

SQL-92 入門層級一致性驅動程式一律會傳回 “schema”。

InfoType 已從 ODBC 2.0 InfoType SQL_OWNER_TERM重新命名 ODBC 3.0
SQL_SCHEMA_USAGE 2.0 SQLUINTEGER 位掩碼,列舉可使用架構的語句:
SQL_SU_DML_STATEMENTS = 所有數據操作語言語句都支持架構:SELECT、INSERT、UPDATEDELETE,如果支援,SELECT FOR UPDATE 和定位更新和刪除語句。
SQL_SU_PROCEDURE_INVOCATION = ODBC 程式調用語句支持架構。
SQL_SU_TABLE_DEFINITION = 所有數據表定義語句都支持架構: CREATE TABLECREATE VIEWALTER TABLEDROP TABLEDROP VIEW
SQL_SU_INDEX_DEFINITION = 所有索引定義語句都支持架構: CREATE INDEXDROP INDEX
SQL_SU_PRIVILEGE_DEFINITION = 所有許可權定義語句都支持架構: GRANTREVOKE

SQL-92 入門層級一致性驅動程式一律會傳回支援SQL_SU_DML_STATEMENTS、SQL_SU_TABLE_DEFINITION和SQL_SU_PRIVILEGE_DEFINITION選項。

InfoType 已從 ODBC 2.0 InfoType SQL_OWNER_USAGE重新命名為 ODBC 3.0
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 不包含此字元字串的需求。

InfoType 僅限於目錄函式。 如需在搜尋模式字串中使用逸出字元的描述,請參閱 Pattern Value Arguments
SQL_SERVER_NAME 1.0 具有實際數據源特定伺服器名稱的字元字串;在 SQLConnect、SQLDriverConnectSQLBrowseConnect 期間使用數據源名稱時很有用。
SQL_SPECIAL_CHARACTERS 2.0 字元字串,包含數據源上所有特殊字元(也就是除了 a 到 z、A 到 Z、0 到 9 和底線以外的所有字元,都可以用於識別元名稱,例如數據表名稱、數據行名稱或索引名稱。 例如,“#$^”。 如果標識元包含一或多個這些字元,則標識碼必須是分隔的標識碼。
SQL_SQL_CONFORMANCE 3.0 SQLUINTEGER 值,指出驅動程式支援的 SQL-92 層級:
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 SQLUINTEGER 位掩碼,列舉驅動程式和相關聯數據源所支援的 datetime 純量函式,如 SQL-92 中所定義。

下列位掩碼可用來判斷支援的 datetime 函式:
SQL_SDF_CURRENT_DATE
SQL_SDF_CURRENT_TIME
SQL_SDF_CURRENT_TIMESTAMP
SQL_SQL92_FOREIGN_KEY_DELETE_RULE 3.0 SQLUINTEGER 位掩碼,列舉 DELETE 語句中外鍵支持的規則,如 SQL-92 中所定義。

下列位掩碼可用來判斷數據源支援哪些子句:
SQL_SFKD_CASCADE
SQL_SFKD_NO_ACTION
SQL_SFKD_SET_DEFAULT
SQL_SFKD_SET_NULL

FIPS 過渡層級一致性驅動程式一律會傳回所有支持的選項。
SQL_SQL92_FOREIGN_KEY_UPDATE_RULE 3.0 SQLUINTEGER 位掩碼,列舉 UPDATE 語句中外鍵支持的規則,如 SQL-92 中所定義。

下列位掩碼可用來判斷數據源支援哪些子句:
SQL_SFKU_CASCADE
SQL_SFKU_NO_ACTION
SQL_SFKU_SET_DEFAULT
SQL_SFKU_SET_NULL

SQL-92 完全符合層級的驅動程式一律會傳回所有支持的選項。
SQL_SQL92_GRANT 3.0 SQLUINTEGER 位掩碼,列舉 GRANT 語句中支援的子句,如 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 SQLUINTEGER 位掩碼,列舉驅動程式和相關聯數據源所支援的數值純量函式,如 SQL-92 中所定義。

下列位掩碼可用來判斷支援哪些數值函式:
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 SQLUINTEGER 位掩碼,列舉 SELECT 語句中支援的述詞,如 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 SQLUINTEGER 位掩碼,列舉 SELECT 語句中支援的關係聯結運算符,如 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 SQLUINTEGER 位掩碼,列舉 REVOKE 語句中支援的子句,如數據源支援的 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的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 SQLUINTEGER 位掩碼,列舉 SELECT 語句中支援的數據列值建構函式運算式,如 SQL-92 中所定義。 下列位掩碼可用來判斷數據源支援的選項:
SQL_SRVC_VALUE_EXPRESSION
SQL_SRVC_NULL
SQL_SRVC_DEFAULT
SQL_SRVC_ROW_SUBQUERY
SQL_SQL92_STRING_FUNCTIONS 3.0 SQLUINTEGER 位掩碼,列舉驅動程式和相關聯數據源所支援的字串純量函式,如 SQL-92 中所定義。

下欄位遮罩可用來判斷支援哪些字串函式:
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 SQLUINTEGER 位掩碼,列舉所支援的值表達式,如 SQL-92 中所定義。

每個位掩碼旁的括弧中會顯示必須支援此功能的SQL-92 或 FIPS 一致性層級。

下列位掩碼可用來判斷數據源支援的選項:
SQL_SVE_CASE (中級)
SQL_SVE_CAST (FIPS 過渡等級)
SQL_SVE_COALESCE (中級)
SQL_SVE_NULLIF (中級)
SQL_STANDARD_CLI_CONFORMANCE 3.0 SQLUINTEGER 位掩碼,列舉驅動程式符合的 CLI 標準或標準。 下列位掩碼可用來判斷驅動程式所遵循的層級:
SQL_SCC_XOPEN_CLI_VERSION1:驅動程式符合開放群組 CLI 第 1 版。
SQL_SCC_ISO92_CLI:驅動程式符合 ISO 92 CLI。
SQL_STATIC_CURSOR_ATTRIBUTES1 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援的靜態數據指標屬性。 此位掩碼包含屬性的第一個子集;如需第二個子集,請參閱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 中繼層級一致性驅動程式通常會傳回支援的SQL_CA1_NEXT、SQL_CA1_ABSOLUTE和SQL_CA1_RELATIVE選項,因為驅動程式支援透過內嵌 SQL FETCH 語句的可捲動數據指標。 由於這不會直接判斷基礎 SQL 支援,但是,即使 SQL-92 中繼層級一致性驅動程式也不支援可捲動的數據指標。
SQL_STATIC_CURSOR_ATTRIBUTES2 3.0 SQLUINTEGER 位掩碼,描述驅動程式所支援的靜態數據指標屬性。 此位掩碼包含屬性的第二個子集;如需第一個子集,請參閱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_exp1string_exp2start 自變數呼叫 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 SQLUINTEGER 位掩碼,列舉驅動程式和 TIMESTAMPADD 純量函式相關聯數據源所支持的時間戳間隔。

下列位掩碼可用來判斷支援的間隔:
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 SQLUINTEGER 位掩碼,列舉驅動程式和 TIMESTAMPDIFF 純量函式相關聯數據源所支持的時間戳間隔。

下列位掩碼可用來判斷支援的間隔:
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 = Transactions 可以依任何順序包含 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 SQLUINTEGER 位掩碼,列舉 UNION 子句的支援
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 字元字串,表示 OPEN Group 規格的發行年份,ODBC 驅動程式管理員版本完全符合此規格。

範例

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 標頭檔