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 ConnectionHandle HandleType 來取得相關聯的 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 呼叫 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 已超過連線逾時 在資料來源回應要求之前,連線逾時期限已過期。 連線逾時期間是透過 SQLSetConnectAttr 來設定,SQL_ATTR_CONNECTION_TIMEOUT。
IM001 驅動程式不支援此函式 (DM) 對應至 ConnectionHandle 驅動程式不支援 函式。

註解

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

  • 以 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資訊類型呼叫 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

注意

實作 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 = 資料列計數,如果有的話,只要透過呼叫 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 = 與一個語句相關聯的書簽可以與另一個語句搭配使用。 除非指定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、UPDATE DELETE ,如果支援, SELECT FOR UPDATE 和定點更新和刪除語句。
SQL_CU_PROCEDURE_INVOCATION = ODBC 程式調用語句支援目錄。
SQL_CU_TABLE_DEFINITION = 所有資料表定義語句都支援目錄: CREATE TABLE CREATE VIEW ALTER TABLE DROP TABLE DROP VIEW
SQL_CU_INDEX_DEFINITION = 所有索引定義語句都支援目錄: CREATE INDEX DROP INDEX
SQL_CU_PRIVILEGE_DEFINITION = 擁有權限定義語句都支援目錄: GRANT REVOKE

如果資料來源不支援目錄,則會傳回值 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,或在另一個作業系統上載入驅動程式 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語句屬性會影響 SELECT INSERT 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 = 驅動程式不保證當資料指標是動態資料指標時,模擬位置更新或刪除語句只會影響一個資料列;這是應用程式負責保證這一點。 (如果語句影響一個以上的資料列, SQLExecute SQLExecDirect 會傳回 SQLSTATE 01001 [資料指標作業衝突]。若要設定此行為,應用程式會呼叫 SQLSetStmtAttr ,並將 SQL_ATTR_SIMULATE_CURSOR 屬性設定為 SQL_SC_NON_UNIQUE。
SQL_CA2_SIMULATE_TRY_UNIQUE = 驅動程式會嘗試保證當資料指標是動態資料指標時,模擬位置更新或刪除語句只會影響一個資料列。 驅動程式一律會執行這類語句,即使它們可能會影響多個資料列,例如沒有唯一索引鍵時。 (如果語句影響一個以上的資料列, SQLExecute SQLExecDirect 會傳回 SQLSTATE 01001 [資料指標作業衝突]。若要設定此行為,應用程式會呼叫 SQLSetStmtAttr ,並將 SQL_ATTR_SIMULATE_CURSOR 屬性設定為 SQL_SC_TRY_UNIQUE。
SQL_CA2_SIMULATE_UNIQUE = 驅動程式保證當資料指標是動態資料指標時,模擬位置更新或刪除語句只會影響一個資料列。 如果驅動程式無法保證給定語句的這個值, SQLExecDirect SQLPrepare 會傳回 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 InfoType SQLGetInfo 的呼叫傳回什麼,都需要此支援。
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 作業中的資料列或 INSERT UPDATE DELETE 作業影響的資料 列(例如資料列計數),或如果它處於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、UPDATE DELETE ,如果支援, SELECT FOR UPDATE 和定點更新和刪除語句。
SQL_SU_PROCEDURE_INVOCATION = ODBC 程式調用語句支援架構。
SQL_SU_TABLE_DEFINITION = 所有資料表定義語句都支援架構: CREATE TABLE CREATE VIEW ALTER TABLE DROP TABLE DROP 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選項。

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、SQLDriverConnect SQLBrowseConnect 期間 使用資料來源名稱時 很有用。
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_exp1 string_exp2 start 引數呼叫 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 、INSERT UPDATE DELETE )。 交易中遇到的資料定義語言 (DDL) 語句會造成錯誤。 (ODBC 1.0)
SQL_TC_DDL_COMMIT = 交易只能包含 DML 語句。 在交易中遇到的 DDL 語句 ( CREATE TABLE DROP 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 標頭檔