相容性矩陣

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

應用程式類型

和版本
32 位元 ODBC

2.x 驅動程式
ODBC 3.x

驅動程式
ODBC 3.8 驅動程式 符合 ISO 和 Open Group 規範的驅動程式
16 位元應用程式 (任何版本) 相容 相容 相容 相容
2.x 應用程式 相容 相容 相容 不相容[3]
2.x 重新編譯應用程式 相容 相容[1] 相容[1] 不相容[3]
2.x Unicode 應用程式 相容 相容[1] 相容[1] 不相容[3]
純 Open Group 和 ISO 合規應用程式 不相容 相容[2] 相容[2] 相容[2]
純 3.0 應用程式 不相容 相容 相容 不相容[4]
純 3.5 應用程式 不相容 相容 相容 不相容[4]
純 3.8 (或更新版本) 應用程式 不相容 [5] 不相容 [5] 相容 不相容 [4]
已淘汰的應用程式 相容 相容 相容 不相容[3]

[1] 應用程式必須搭配 UNICODE 選項,使用 ODBC 3.5 (或更新版本) 標頭重新編譯 (如果是 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 驅動程式中,例如 ODBC 中的驅動程式專屬 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 for SQL_DRIVER_ODBC_VER 以判斷驅動程式版本。 如果驅動程式是 ODBC 3.8 驅動程式,您可以使用驅動程式專屬的 C 類型。 否則,請勿使用驅動程式專屬的 C 資料類型。

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

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

由於 Windows 7 之前發行的驅動程式管理員不支援 SQLCancelHandle 函式,因此如果應用程式直接呼叫 SQLCancelHandle,就無法在舊版 Windows 中載入應用程式。 若要使用驅動程式管理員的所有版本,並在新版本的 Windows 上使用 SQLCancelHandle,應用程式應該使用 LoadLibraryGetProcAddress 間接呼叫 SQLCancelHandle

另請參閱

ODBC 3.8 的新功能