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 函式 |