符合標準的應用程式和驅動程式

符合標準的應用程式或驅動程式,是指符合開放群組CAE規範「資料管理:SQL Call-Level 介面(CLI)」以及ISO/IEC 9075-3:1995(E)Call-Level 介面(SQL/CLI)的應用程式。

ODBC 3.x 保證以下功能:

  • 依照 Open Group 與 ISO CLI 規範撰寫的應用程式,當它編譯為 ODBC 3.x 標頭檔案並與 ODBC 3.x 函式庫連結,並且透過 ODBC 3.x 驅動程式管理員取得驅動存取權時,即可與 ODBC 3.x 驅動程式或符合標準的驅動程式相符。

  • 依照 Open Group 和 ISO CLI 規範撰寫的驅動程式,只要編譯為 ODBC 3.x 標頭檔案並連結 ODBC 3.x 函式庫,且應用程式透過 ODBC 3.x 驅動程式管理員取得驅動存取權,就能與 ODBC 3.x 應用程式或符合標準的應用程式相容。

符合標準的應用程式與驅動程式會以 ODBC_STD 編譯旗標編譯。

符合標準的應用程式會展現以下行為:

  • 若符合標準的應用程式呼叫 SQLAllocEnv (此情況可能發生,因為 SQLAllocEnv 在 Open Group 與 ISO CLI 中是有效函式),該呼叫會在編譯時映射至 SQLAllocHandleStd 。 因此,執行時應用程式會呼叫 SQLAllocHandleStd。 在處理此呼叫的過程中,驅動管理員會將SQL_ATTR_ODBC_VERSION環境屬性設為SQL_OV_ODBC3。 呼叫 SQLAllocHandleStd 等同於呼叫 SQLAllocHandle,並使用 SQL_HANDLE_ENV 作為 HandleType,接著呼叫 SQLSetEnvAttr,將 SQL_ATTR_ODBC_VERSION 設為 SQL_OV_ODBC3。

  • 若符合標準的應用程式呼叫 SQLBindParam (此情況可能發生,因為 SQLBindParam 在開放群組與 ISO CLI 中是有效函式),ODBC 3.x 驅動程式管理器會將呼叫映射至 SQLBindParameter 中的等效呼叫。 (參見附錄 G:驅動程式向後相容指引中的 SQLBindParam 映射 。)

  • 為了與 ISO CLI 保持一致,ODBC 3.x 標頭檔案包含用於呼叫 SQLGetInfo 的資訊型別名。 符合標準的應用程式可以使用這些別名來取代 ODBC 3.x 的資訊型別。 欲了解更多資訊,請參閱下一個主題「 標頭檔案」。

  • 符合標準的應用程式必須驗證其支援的所有功能在其使用的驅動程式中均獲得支援。 將 SQL_ATTR_CURSOR_SCROLLABLE 陳述句屬性設為 SQL_SCROLLABLE,並將 SQL_ATTR_CURSOR_SENSITIVITY 陳述句屬性設為 SQL_INSENSITIVE 或 SQL_SENSITIVE,這些功能在標準中作為選配功能可用,但未包含在 ODBC 3.x 核心層級中,因此可能並非所有 ODBC 3.x 驅動程式都支援。 若符合標準的應用程式使用這些功能,應驗證其使用的驅動程式是否支援這些功能。