相容性矩陣

下表說明本節先前定義的應用程式類型與驅動程式的相容性。

應用程式類型

以及版本
32 位元 ODBC

2.x 驅動程式
ODBC 3.x

driver
ODBC 3.8 驅動程式 ISO 與 Open Group 相容驅動程式
16 位元應用程式,任一版本 能共處的 能共處的 能共處的 能共處的
2.x 應用程式 能共處的 能共處的 能共處的 不相容[3]
純粹的 2.x 應用程式重新編譯 能共處的 相容[1] 相容[1] 不相容[3]
Pure 2.x Unicode 應用程式 能共處的 相容[1] 相容[1] 不相容[3]
純開放組及符合 ISO 標準的應用 不相容 相容[2] 相容[2] 相容[2]
純 3.0 應用 不相容 能共處的 能共處的 不相容[4]
純 3.5 應用 不相容 能共處的 能共處的 不相容[4]
Pure 3.8(或更高版本)的應用程式 不相容 [5] 不相容 [5] 能共處的 不相容 [4]
替換申請 能共處的 能共處的 能共處的 不相容[3]

[1] 應用程式必須使用 ODBC 3.5(或更高版本)標頭檔並啟用 UNICODE 選項(若是 Unicode 應用程式),並且必須將 ODBCVER 設為 0x0250。

[2] 應用程式必須使用 ODBC 3.5(或更高)標頭編譯,並與 ODBC 驅動程式管理器連結。 它也必須設定標頭旗標ODBC_STD。

[3] 此配置可能無法運作,因為 ODBC 2.x 中存在標準中未包含的功能,例如書籤。

[4] 此配置可能無法運作,因為 ODBC 3.x 中存在標準中未包含的功能,例如書籤。

[5] 此配置可能失敗,因為 ODBC 3.8 中存在 ODBC 2.x 或 3.x 驅動程式中沒有的功能,例如驅動程式專屬 的 C 資料型別。

驅動程式管理員相容性

必須同時執行所有驅動管理員版本的 ODBC 3.0 應用程式,啟動時應執行以下操作:

  • 分配一個環境控制權。

  • 將SQL_ATTR_ODBC_VERSION環境屬性設為SQL_OV_ODBC3_80。 若驅動程式管理員回傳 SQL_ERROR,表示該驅動程式管理員的版本早於 3.8。 根據需要,SQL_ATTR_ODBC_VERSION 重設為 SQL_OV_ODBC3 或 SQL_OV_ODBC2,以對應驅動管理員。

  • 分配一個連接帳號。

  • 建立連結。

  • 請致電 SQLGetInfo 查詢SQL_DRIVER_ODBC_VER以確認驅動程式版本。 如果驅動程式是 ODBC 3.8 驅動,你可以使用驅動程式專屬的 C 類型。 否則,請勿使用驅動程式專屬的 C 資料型別。

請注意,重新編譯的 ODBC 3.x 應用程式可以使用 ODBC 3.8 的功能(不包括驅動程式專屬的 C 類型),而無需為 SQL_ATTR_ODBC_VERSION 指定 SQL_OV_ODBC3_80。 這類似於重新編譯的 ODBC 2.x 應用程式,使用 ODBC 3.x 的功能。

在與所有驅動管理員相容的應用程式中使用 SQLCancelHandle

由於 SQLCancelHandle 函 式在 Windows 7 之前發布的驅動程式管理器中不被支援,若應用程式直接呼叫 SQLCancelHandle ,則無法在舊版本的 Windows 中載入。 若要支援所有版本的驅動管理員並在新版本的 Windows 上使用 SQLCancelHandle,應用程式應透過 LoadLibraryGetProcAddress 間接呼叫 SQLCancelHandle

另請參閱

ODBC 3.8 的新功能