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時,可能會藉由呼叫SQLGetDiagRec與HandleType為 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) SQLExecute、 SQLExecDirect、 SQLBulkOperations或 SQLSetPos 已針對 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 函數 |