ODBC API 參考

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控實例

ODBC API 提供一套標準函式,用於連接資料來源、執行 SQL 陳述式及取得結果。 每個函式都是 C 語言函式,描述內容包括目的、ODBC 版本、語法、參數、回傳值、診斷及程式碼範例。

標準 CLI 相容性層級可為以下之一:ISO 92、Open Group、ODBC 或 Deprecated。 標註為 ISO 92 合規的函數也出現在 Open Group 版本 1 中,因為 Open Group 是 ISO 92 的純超集。 標註為 Open Group 相容的函式也出現在 ODBC 3.x 中,因為 ODBC 3.x 是 Open Group 版本 1 的純超集。 標示為 ODBC 合規的函數在兩個標準中都不會出現。 一個標記為棄用的函式在 ODBC 3.x 中已被棄用。

SQLGetDiagField 函式描述描述如何處理診斷資訊。 與 SQLSTATE 值相關的文字會描述條件,但不會規定具體文字。

備註

關於 ODBC 功能的驅動程式相關資訊,請參閱驅動程式章節。

處理配置與管理

這些函式會為環境、連線、語句和描述符分配並釋放句柄。 句柄是 ODBC 應用中追蹤狀態的主要機制。

功能 Description
SQLAllocHandle 分配環境、連線、語句或描述符。 這是 ODBC 3.x 函式,取代了被棄用的分配函數。
SQLFreeHandle 釋放環境、連線、語句或描述符的手柄,並釋放相關資源。
SQLAllocConnect 分配一個連接柄。 在 ODBC 3.x 中被棄用; SQLAllocHandle 用吧。
SQLAllocEnv 分配一個環境控制柄。 在 ODBC 3.x 中被棄用; SQLAllocHandle 用吧。
SQLAllocStmt 分配一個語句柄。 在 ODBC 3.x 中被棄用; SQLAllocHandle 用吧。
SQLFreeConnect 釋放一個連接柄。 在 ODBC 3.x 中被棄用; SQLFreeHandle 用吧。
SQLFreeEnv 釋放一個環境控制柄。 在 ODBC 3.x 中被棄用; SQLFreeHandle 用吧。
SQLFreeStmt 停止語句處理、關閉相關游標、丟棄待處理結果,並可選擇釋放與語句代言柄相關的資源。

連接功能

這些功能建立並管理與資料來源的連結。 它們支援多種連線方式,包括標準連線、驅動程式專屬對話框及迭代瀏覽。

功能 Description
SQLConnect 透過資料來源名稱、使用者 ID 及密碼建立與資料來源的連線。
SQLDriverConnect 利用連接串建立連接。 支援針對驅動程式的對話框,提供更多連線資訊。
SQLBrowseConnect 支援一種迭代方法,以發現並枚舉連接資料來源所需的屬性。
SQLDisconnect 關閉與資料來源的連線並釋放相關資源。
SQLDataSources 回傳可用資料來源清單。 我是打給駕駛管理員,不是特定駕駛。
SQLDrivers 回傳已安裝驅動程式及其屬性清單。 我打電話給司機經理。

報表準備與執行

這些函式負責準備並執行 SQL 語句。 ODBC 支援直接執行與預備執行,預備執行在重複執行的語句中提供更佳效能。

功能 Description
SQLPrepare 準備一個 SQL 陳述式以供後續執行。 資料來源負責編譯並優化該語句。
SQLExecute 執行已備妥的陳述式。 呼叫這個函式前先呼叫 SQLPrepare
SQLExecDirect 在一次呼叫中準備並執行 SQL 語句。 用於只執行一次的語句。
SQLNativeSql 回傳由驅動程式修改的 SQL 字串,顯示驅動程式如何轉換 ODBC SQL 語法。
SQLCancel 取消對帳單的處理。 可以取消非同步執行的函式或在其他執行緒上執行的函式。
SQLCancelHandle 取消對連線或對帳單的處理。 比 SQLCancel 起取消連接函數更靈活。
SQLCompleteAsync 判斷非同步函式何時完成。 用於基於通知的非同步處理。

參數係結

這些函式將應用變數綁定到 SQL 語句中的參數標記。 參數使預先準備好的語句中能產生動態值。

功能 Description
SQLBindParameter 將應用程式變數綁定到 SQL 陳述式中的參數標記。 支援輸入、輸出及輸入/輸出參數。
SQLNumParams 回傳 SQL 陳述式中的參數數量。
SQLDescribeParam 回傳參數標記的描述,包括資料型別、大小與精確度。
SQLParamData 用於 SQLPutData 執行時提供參數資料。 回傳需要資料的參數。
SQLPutData 在執行時傳送參數的部分或全部資料值。 支援以區塊形式處理的大型資料。
SQLSetParam 綁定一個參數。 在 ODBC 3.x 中被棄用; SQLBindParameter 用吧。
SQLParamOptions 設定參數陣列的選項。 在 ODBC 3.x 中被棄用;改用陳述屬性。

結果集綁定與檢索

這些函式會將應用程式緩衝區綁定到結果集欄位,並從查詢結果中擷取資料。

功能 Description
SQLBindCol 將應用程式變數綁定到結果集欄位,以便後續擷取操作。
SQLFetch 從結果集中擷取下一列資料到綁定欄位。
SQLFetchScroll 從結果集中擷取指定的列集。 支援捲動至第一、最後、下一、先、絕對及相對位置。
SQLGetData 在 或 SQLFetchScroll之後,為單一欄位SQLFetch取得資料。 對於大型資料或未綁定欄位非常有用。
SQLExtendedFetch 擷取指定的資料列集。 在 ODBC 3.x 中被棄用; SQLFetchScroll 用吧。
SQLMoreResults 判斷某個語句是否有更多結果,並進入下一組結果。
SQLRowCount 回傳受 UPDATE、INSERT 或 DELETE 陳述式影響的列數。

游標操作

這些函式管理游標行為、位置控制以及列集的批量操作。

功能 Description
SQLSetPos 設定列集內游標的位置,並允許應用程式在該位置重新整理、更新或刪除資料。
SQLBulkOperations 對列集執行批量插入、更新、刪除或以書籤取取的操作。
SQLCloseCursor 關閉已開啟的游標,並丟棄待處理的結果。
SQLGetCursorName 回傳與語句相關的游標名稱。
SQLSetCursorName 指定定位 UPDATE 與 DELETE 語句的游標名稱。
SQLSetScrollOptions 設定游標行為的選項。 在 ODBC 3.x 中被棄用;改用陳述屬性。

目錄功能

這些函式會擷取資料庫結構的元資料,包括資料表、欄位、索引、權限及儲存程序。

功能 Description
SQLTables 回傳資料來源中資料表名稱的清單。 支援依目錄、結構及資料表類型進行篩選。
SQLColumns 回傳指定資料表的欄位名稱及其屬性清單。
SQLPrimaryKeys 回傳構成資料表主鍵的欄位。
SQLForeignKeys 回傳表格中的外鍵,或是參考該表格主鍵的其他表格中的外鍵。
SQLStatistics 回傳關於資料表的統計資料及其相關索引清單。
SQLSpecialColumns 回傳唯一識別某一列的欄位,或當該列中任一值更新時自動更新的欄位。
SQLColumnPrivileges 回傳資料表的欄位列表及相關權限。
SQLTablePrivileges 回傳一份資料表清單及每表對應的權限。
SQLProcedures 回傳資料來源中儲存程序名稱的清單。
SQLProcedureColumns 回傳指定程序的輸入/輸出參數與欄位列表。
SQLGetTypeInfo 回傳資料來源所支援的資料型態資訊。

描述子操作

這些函式會取得並設定描述符值。 描述符包含關於參數與結果集欄位的元資料。

功能 Description
SQLGetDescField 回傳描述符記錄中單一欄位的值。
SQLGetDescRec 在一次呼叫中回傳描述符記錄的多個欄位。
SQLSetDescField 設定描述符記錄中單一欄位的值。
SQLSetDescRec 在單一通話中設定描述符記錄的多個欄位。
SQLCopyDesc 將描述符資訊從一個描述符的句柄複製到另一個描述符的句柄。

屬性函數

這些函式會取得並設定環境、連線與語句的屬性。 屬性控制 ODBC 行為的各個面向。

功能 Description
SQLSetEnvAttr 設定一個影響該環境下所有連線的環境屬性。
SQLGetEnvAttr 回傳環境屬性的值。
SQLSetConnectAttr 設定一個連結屬性,影響連線及其上的陳述。
SQLGetConnectAttr 回傳連線屬性的值。
SQLSetStmtAttr 設定一個陳述屬性。 包含游標、查詢逾時及參數設定。
SQLGetStmtAttr 回傳一個陳述屬性的值。
SQLSetConnectOption 設定連線選項。 在 ODBC 3.x 中被棄用; SQLSetConnectAttr 用吧。
SQLGetConnectOption 回傳連線選項的值。 在 ODBC 3.x 中被棄用; SQLGetConnectAttr 用吧。
SQLSetStmtOption 設定一個語句選項。 在 ODBC 3.x 中被棄用; SQLSetStmtAttr 用吧。
SQLGetStmtOption 回傳一個語句期權的價值。 在 ODBC 3.x 中被棄用; SQLGetStmtAttr 用吧。

診斷與資訊功能

這些功能會取得診斷資訊、錯誤訊息、驅動程式功能及資料來源資訊。

功能 Description
SQLGetDiagField 回傳診斷記錄中包含錯誤、警告及狀態資訊的欄位值。
SQLGetDiagRec 回傳診斷記錄中多個常用欄位,包括 SQLSTATE、原生錯誤碼及訊息文字。
SQLError 回傳錯誤資訊。 在 ODBC 3.x 中被棄用; SQLGetDiagRec 用吧。
SQLGetFunctions 回傳驅動程式是否支援特定 ODBC 功能的資訊。
SQLGetInfo 回傳驅動程式與資料來源的一般資訊,包括支援的功能與能力。

結果集元資料

這些函式會回傳結果集結構的資訊。

功能 Description
SQLNumResultCols 回傳結果集中的欄位數。
SQLDescribeCol 回傳結果集欄位名稱、資料型態、精確度、縮放度及空值。
SQLColAttribute 回傳結果集中欄位描述符資訊。 比 SQLDescribeCol更靈活。
SQLColAttributes 回傳欄位的屬性。 在 ODBC 3.x 中被棄用; SQLColAttribute 用吧。

交易管理

這些功能管理交易邊界,控制何時提交或回滾變更。

功能 Description
SQLEndTran 提交或回滾交易。 可適用於同一環境上的所有連線或單一連線。
SQLTransact 提交或回滾交易。 在 ODBC 3.x 中被棄用; SQLEndTran 用吧。