核心介面一致性

所有 ODBC 驅動程式都必須至少展示核心層級介面的一致。 由於核心層級中的功能是大部分泛型互通應用程式所需的功能,因此驅動程式可以使用這類應用程式。 核心層級中的功能也會對應至 ISO CLI 規格中定義的功能,以及開放群組 CLI 規格中定義的非選擇性功能。 符合核心層級介面的 ODBC 驅動程式,可讓應用程式執行下列所有動作:

  • 藉由呼叫 SQLAllocHandleSQLFreeHandle,來配置並釋放所有類型的控制代碼。

  • 使用所有形式的 SQLFreeStmt 函數。

  • 藉由呼叫 SQLBindCol 來繫結結果集資料行。

  • 藉由呼叫 SQLBindParameterSQLNumParams,來處理限於輸入方向的動態參數,包含參數陣列。 (輸出方向的參數是層級 2 介面一致性中的功能 203。)

  • 指定繫結位移。

  • 使用 [資料執行時] 對話方塊,此會涉及對 SQLParamDataSQLPutData 的呼叫。

  • 藉由呼叫 SQLCloseCursorSQLGetCursorNameSQLSetCursorName 來管理資料指標和資料指標名稱。

  • 藉由呼叫 SQLColAttributeSQLDescribeColSQLNumResultColsSQLRowCount,以存取結果集描述 (中繼資料)。 (在資料行編號 0 上使用這些函數來擷取書籤中繼資料,屬於層級 2 介面一致性中的功能 204。)

  • 藉由呼叫目錄函數 SQLColumnsSQLGetTypeInfoSQLStatisticsSQLTable,來查詢資料字典。

    驅動程式不需要支援資料庫資料表和檢視的多部分名稱。 (如需詳細資訊,請參閱層級 1 介面一致性中的功能 101,和層級 2 介面一致性中的功能 201)。不過,SQL-92 規格的某些功能,例如資料行資格和索引名稱,在語法上則相當於多部分命名。 目前的 ODBC 功能清單並非用於將新的選項引入 SQL-92 的這些層面。

  • 藉由呼叫 SQLConnectSQLDataSourcesSQLDisconnectSQLDriverConnect,來管理資料來源和連線。 藉由呼叫 SQLDrivers,來取得驅動程式的相關資訊,且不考慮其支援的 ODBC 層級為何。

  • 藉由呼叫 SQLExecDirectSQLExecuteSQLPrepare,來準備和執行 SQL 陳述式。

  • 藉由呼叫 SQLFetch 或呼叫 SQLFetchScroll,並將 FetchOrientation 引數設定為 SQL_FETCH_NEXT,以僅在順向擷取結果集或多個資料列的一個資料列。

  • 藉由呼叫 SQLGetData,來取得組件中的未繫結資料行。

  • 藉由呼叫 SQLGetConnectAttrSQLGetEnvAttrSQLGetStmtAttr,並將所有屬性設定為其預設值,再藉由呼叫 SQLSetConnectAttrSQLSetEnvAttrSQLSetStmtAttr,來將特定屬性設定為非預設值。

  • 藉由呼叫 SQLCopyDescSQLGetDescFieldSQLGetDescRecSQLSetDescFieldSQLSetDescRec,來操作描述項的特定欄位。

  • 藉由呼叫 SQLGetDiagFieldSQLGetDiagRec,來取得診斷資訊。

  • 藉由呼叫 SQLGetFunctionsSQLGetInfo,來偵測驅動程式功能。 此外,藉由呼叫 SQLNativeSql,可在 SQL 陳述式傳送至資料來源之前,偵測對 SQL 陳述式所做的任何文字替代結果。

  • 使用 SQLEndTran 的語法來認可異動。 核心層級驅動程式不需要支援真正的交易。因此,應用程式無法為 SQL_ATTR_AUTOCOMMIT 連線屬性指定 SQL_ROLLBACK 或 SQL_AUTOCOMMIT_OFF。 (如需詳細資訊,請參閱層級 2 介面一致性中的功能 109。)

  • 呼叫 SQLCancel 以取消資料執行對話方塊,並在多執行緒環境中取消在另一個執行緒中執行的 ODBC 函式。 核心層級介面一致性不會授權支援非同步執行函式,也不會要求使用 SQLCancel 來取消以非同步方式執行的 ODBC 函式。 平台和 ODBC 驅動程式都不需要多執行緒,驅動程式就能同時執行獨立活動。 不過,在多執行緒環境中,ODBC 驅動程式必須是安全執行緒。 從應用程式提出的序列化要求也是實作此規格的一致性方式,即使可能會造成嚴重的效能問題也一樣。

  • 藉由呼叫 SQLSpecialColumns,來取得資料表 SQL_BEST_ROWID 可識別資料列的資料行。 (請參閱層級 2 介面一致性中的功能 208,了解如何取得 SQL_ROWVER 支援。)

    重要

    ODBC 驅動程式必須在核心介面一致性層級中實作函式。