適用於:SQL Server
Azure SQL Database
Azure 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 用吧。 |