Funkce SQLCloseCursor

Soulad
Představená verze: ODBC 3.0 Shoda s normami: ISO 92

Summary
SQLCloseCursor zavře kurzor, který byl otevřen na příkazu, a vyřadí čekající výsledky.

Syntax

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

Arguments

StatementHandle
[Vstup] Popisovač příkazu

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR nebo SQL_INVALID_HANDLE.

Diagnostika

Když SQLCloseCursor vrátí SQL_ERROR nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLSTATE voláním SQLGetDiagRec s HandleType SQL_HANDLE_STMT a Handleof StatementHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLCloseCursor běžně vrací, a vysvětluje každou z nich v kontextu této funkce; notace "(DM)" předchází popisům SQLstavů vráceným Správcem ovladačů. Návratový kód přidružený ke každé hodnotě SQLSTATE je SQL_ERROR, pokud není uvedeno jinak.

SQLSTATE Error Description
01000 Obecné upozornění Informační zpráva specifická pro řidiče (Funkce vrátí SQL_SUCCESS_WITH_INFO.)
24000 Neplatný stav kurzoru Na StatementHandle nebyl otevřený žádný kurzor. (Toto se vrací pouze pomocí ODBC 3. x driver.)
HY000 Obecná chyba Došlo k chybě, pro kterou nebyla definována žádná specifická funkce SQLSTATE a pro kterou nebyla definována žádná implementace sqlSTATE. Chybová zpráva vrácená nástrojem SQLGetDiagRec v vyrovnávací paměti *MessageText popisuje chybu a její příčinu.
HY001 Chyba přidělení paměti Ovladač nemohl přidělit paměť potřebnou k podpoře provádění nebo dokončení funkce.
HY010 Chyba posloupnosti funkcí (DM) Asynchronně vykonávající funkce byla volána pro handle spojení spojeného s StatementHandle a stále se spouštěla, když byla tato funkce vyvolána.

(DM) Byla volána asynchronně vykonávající funkce pro CommandHandle a stále se spouštěla, když byla tato funkce vyvolána.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations nebo SQLSetPos byly volány pro StatementHandle a vráceny SQL_NEED_DATA. Tato funkce byla volána před odesláním dat pro všechny parametry provádění dat nebo sloupce.
HY013 Chyba správy paměti Volání funkce nelze zpracovat, protože základní objekty paměti nelze získat přístup, pravděpodobně kvůli nedostatku paměti.
HY117 Připojení je pozastaveno kvůli neznámému stavu transakce. Jsou povoleny pouze funkce pro odpojení a jen pro čtení. (DM) Další informace o pozastaveném stavu naleznete v tématu FUNKCE SQLEndTran.
HYT01 Vypršel časový limit připojení Platnost časového limitu připojení vypršela, než zdroj dat odpověděl na žádost. Časový limit připojení je nastavený prostřednictvím sqlSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Ovladač tuto funkci nepodporuje. (DM) Ovladač přidružený k StatementHandle nepodporuje funkci.

Comments

SQLCloseCursor vrací SQLSTATE 24000 (stav neplatného kurzoru), pokud kurzor není otevřený. Volání SQLCloseCursor je ekvivalentní volání SQLFreeStmt s volbou SQL_CLOSE, s výjimkou toho, že SQLFreeStmt s SQL_CLOSE nemá na aplikaci žádný vliv, pokud na příkazu není otevřený kurzor, zatímco SQLCloseCursor vrací SQLSTATE 24000 (Neplatný stav kurzoru).

Note

Pokud je ODBC 3. x aplikace s ODBC 2. x ovladač volá SQLCloseCursor , když není otevřený žádný kurzor, SQLSTATE 24000 (stav neplatného kurzoru) není vrácen, protože správce ovladačů mapuje SQLCloseCursor na SQLFreeStmt pomocí SQL_CLOSE.

Pro více informací viz Zavření kurzoru.

Příklad kódu

Viz funkce SQLBrowseConnect a funkce SQLConnect.

Informace o Podívejte se
Zrušení zpracování příkazů SQLCancel – funkce
Uvolnění rukojeti Funkce SQLFreeHandle
Zpracování více sad výsledků Funkce SQLMoreResults