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時,可能會藉由呼叫SQLGetDiagRecHandleType為 SQL_HANDLE_STMT 和StatementHandle控制碼來取得相關聯的 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) SQLExecuteSQLExecDirectSQLBulkOperationsSQLSetPos 已針對 StatementHandle 呼叫並傳回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 (未傳回不正確資料指標狀態) ,因為驅動程式管理員會將 SQLCloseCursor 對應至具有SQL_CLOSE的 SQLFreeStmt

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

程式碼範例

請參閱 SQLBrowseConnect 函式SQLConnect 函式

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

另請參閱

ODBC API 參考
ODBC 標頭檔