Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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.
Související funkce
| 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 |