特定驅動程式的資料類型、描述項類型、資訊類型、診斷類型與屬性

驅動程式可為下列項目配置驅動程式特定的值:

  • SQL 資料類型指標 這些指標係用於 SQLBindParameter 中的 ParameterTypeSQLGetTypeInfo 中的 DataType,並由 SQLColAttributeSQLColumnsSQLDescribeColSQLGetTypeInfoSQLDescribeParamSQLProcedureColumnsSQLSpecialColumns 傳回。

  • 描述項欄位 這些欄位係用於 SQLColAttributeSQLGetDescFieldSQLSetDescField 中的 FieldIdentifier

  • 診斷欄位 這些欄位係用於 SQLGetDiagFieldSQLGetDiagRec 中的 DiagIdentifier

  • 資訊類型 這些類型係用於 SQLGetInfo 中的 InfoType

  • 連線和陳述式屬性 這些屬性係用於 SQLGetConnectAttrSQLGetStmtAttrSQLSetConnectAttrSQLSetStmtAttr 中的 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