特定驅動程式的資料類型、描述項類型、資訊類型、診斷類型與屬性
驅動程式可為下列項目配置驅動程式特定的值:
SQL 資料類型指標 這些指標係用於 SQLBindParameter 中的 ParameterType 和 SQLGetTypeInfo 中的 DataType,並由 SQLColAttribute、SQLColumns、SQLDescribeCol、SQLGetTypeInfo、SQLDescribeParam、SQLProcedureColumns 和 SQLSpecialColumns 傳回。
描述項欄位 這些欄位係用於 SQLColAttribute、SQLGetDescField 和 SQLSetDescField 中的 FieldIdentifier。
診斷欄位 這些欄位係用於 SQLGetDiagField 和 SQLGetDiagRec 中的 DiagIdentifier。
資訊類型 這些類型係用於 SQLGetInfo 中的 InfoType。
連線和陳述式屬性 這些屬性係用於 SQLGetConnectAttr、SQLGetStmtAttr、SQLSetConnectAttr 和 SQLSetStmtAttr 中的 Attribute。
以上每一個項目都有兩組值:保留給 ODBC 使用的值,以及保留給驅動程式使用的值。 實作驅動程式特定的值以前,驅動程式寫入器必須從 Open Group 為每個驅動程式特定的型別、欄位或屬性要求一個值。 針對新的驅動程式開發項目,請使用下方資料表所述的範圍。 如果使用不屬於以下所述範圍內的未知的值,ODBC 3.8 驅動程式管理員不會產生錯誤。 不過,如果系統收到不在範圍內的未知的值,更新版本的驅動程式管理員可能會產生錯誤。
任何這類值只要傳遞至 ODBC 函式,驅動程式就必須檢查該值是否有效。 若驅動程式特定的值適用於其他驅動程式,則驅動程式會傳回 SQLSTATE HYC00 (選擇性功能未執行)。
從 ODBC 3.8 開始,驅動程式寫入器可在保留的範圍內配置驅動程式特定的屬性。
注意
ODBC 3.8 驅動程式管理員不會為回溯相容性驗證或強制執行這些範圍。 不過,將來的驅動程式管理員版本或許可以強制執行之。
屬性類型 | ODBC 資料類型 | 特定的驅動程式範圍基底 | 特定的驅動程式範圍限制 | 特定驅動程式值範圍基底的 ODBC 常數 |
---|---|---|---|---|
SQL資料類型指標 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_SQL_TYPE_BASE |
描述項欄位 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_DESCRIPTOR_BASE |
診斷的欄位 | SQLSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_DIAGNOSTIC_BASE |
資訊類型 | SQLUSMALLINT | 0x4000 | 0x7FFF | SQL_DRIVER_INFO_TYPE_BASE |
連線屬性 | SQLINTEGER | 0x00004000 | 0x00007FFF | SQL_DRIVER_CONNECT_ATTR_BASE |
陳述屬性 | SQLINTEGER | 0x00004000 | 0x00007FFF | SQL_DRIVER_STATEMENT_ATTR_BASE |
注意
驅動程式特定的資料類型、描述項欄位、診斷欄位、資訊型別、陳述式屬性和連線屬性都必須在驅動程式文件中說明。 任何這類值只要傳遞至 ODBC 函式,驅動程式就必須檢查該值是否有效。 若驅動程式特定的值適用於其他驅動程式,則驅動程式會傳回 SQLSTATE HYC00 (選擇性功能未執行)。
系統會定義基底值來輔助驅動程式的開發。 例如,驅動程式特定的診斷屬性可透過以下格式定義:
SQL_DRIVER_DIAGNOSTIC_BASE+0, SQL_DRIVER_DIAGNOSTIC_BASE +1
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應