SQLCloseCursor 函式

一致性
引進版本:ODBC 3.0 標準合規性:ISO 92

摘要
SQLCloseCursor 會關閉已在 語句上開啟的資料指標,並捨棄擱置的結果。

語法

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

引數

StatementHandle
[輸入]語句控制碼。

傳回

SQL_SUCCESS、SQL_SUCCESS_WITH_INFO、SQL_ERROR或SQL_INVALID_HANDLE。

診斷

SQLCloseCursor 傳回SQL_ERROR或SQL_SUCCESS_WITH_INFO時,呼叫具有 SQL_HANDLE_STMT HandleType 和 StatementHandle Handle HandleType 來取得 相關聯的 SQLSTATE 值。 下表列出 SQLCloseCursor 通常傳 回的 SQLSTATE 值,並說明此函式內容中的每個值;標記法 「(DM)」 在驅動程式管理員傳回的 SQLSTATE 描述之前。 除非另有說明,否則與每個 SQLSTATE 值相關聯的傳回碼會SQL_ERROR。

SQLSTATE 錯誤 描述
01000 一般警告 驅動程式特定的資訊訊息。 (函式會傳回SQL_SUCCESS_WITH_INFO。)
24000 不正確資料指標狀態 StatementHandle 沒有開啟游標。 (這只會由 ODBC 3 傳回。 x driver.)
HY000 一般錯誤 發生錯誤,其中沒有特定的 SQLSTATE,也沒有定義任何實作特定的 SQLSTATE。 *MessageText 緩衝區中 SQLGetDiagRec 回的錯誤訊息描述錯誤及其原因。
HY001 記憶體配置錯誤 驅動程式無法配置支援執行或完成函式所需的記憶體。
HY010 函式順序錯誤 (DM) 針對與 StatementHandle 相關聯的連接控制碼呼叫非同步執行函式,而且在呼叫此函式時仍在執行中。

(DM) 呼叫 StatementHandle 的非同步執行函式,並在呼叫此函式時仍在執行。

(DM) 已針對 StatementHandle 呼叫 SQLExecute SQLExecDirect SQLBulkOperations SQLSetPos ,並傳回SQL_NEED_DATA。 在針對所有資料執行中參數或資料行傳送資料之前,會呼叫此函式。
HY013 記憶體管理錯誤 無法處理函式呼叫,因為基礎記憶體物件無法存取,可能是因為記憶體不足的情況。
HY117 連線因為未知的交易狀態而暫停。 只允許中斷連線和唯讀函式。 (DM) 如需暫停狀態的詳細資訊,請參閱 SQLEndTran 函式
HYT01 已超過連線逾時 在資料來源回應要求之前,連線逾時期限已過期。 連線逾時期間是透過 SQLSetConnectAttr 來設定,SQL_ATTR_CONNECTION_TIMEOUT。
IM001 驅動程式不支援此函式 (DM) 與 StatementHandle 相關聯的驅動程式不支援 函式。

註解

如果沒有任何資料指標開啟,SQLCloseCursor 會傳回 SQLSTATE 24000 (不正確資料指標狀態)。 呼叫 SQLCloseCursor 相當於使用 SQL_CLOSE 選項呼叫 SQLFreeStmt,但如果 語句上沒有任何資料指標開啟,則 SQLFreeStmt SQL_CLOSE 對應用程式沒有任何作用,而 SQLCloseCursor 會傳回 SQLSTATE 24000 (不正確資料指標狀態)。

注意

如果 ODBC 3。 x 應用程式使用 ODBC 2。 當沒有開啟資料指標時,x 驅動程式會呼叫 SQLCloseCursor ,因此不會傳回 SQLSTATE 24000 (不正確資料指標狀態),因為 Driver Manager 會將 SQLCloseCursor 對應 具有SQL_CLOSE的 SQLFreeStmt

如需詳細資訊,請參閱 關閉資料指標

程式碼範例

請參閱 SQLBrowseConnect 函 式和 SQLConnect 函式

如需下列資訊 請參閱
取消語句處理 SQLCancel 函式
釋放控制碼 SQLFreeHandle 函式
處理多個結果集 SQLMoreResults 函式

另請參閱

ODBC API 參考
ODBC 標頭檔