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
Zavedená verze: Dodržování standardů ODBC 1.0: ISO 92
Shrnutí
SQLGetCursorName vrací název kurzoru přiřazený k danému příkazu.
Syntax
SQLRETURN SQLGetCursorName(
SQLHSTMT StatementHandle,
SQLCHAR * CursorName,
SQLSMALLINT BufferLength,
SQLSMALLINT * NameLengthPtr);
Arguments
StatementHandle
[Vstup] Popisovač příkazu
CursorName
[Výstup] Ukazatel na buffer, do kterého se vrátí název kurzoru.
Pokud je CursorName NULL, NameLengthPtr stále vrátí celkový počet znaků (kromě znaku null-termination pro data znaků), které lze vrátit v bufferu na který ukazuje CursorName.
BufferLength
[Vstup] Délka *CursorName, v znacích.
NameLengthPtr
[Výstup] Ukazatel na paměť, do kterého se vrátí celkový počet znaků (bez znaku null-terminingu), který je k dispozici pro vrácení v *CursorName. Pokud je počet znaků dostupných k vrácení větší nebo roven BufferLength, název kurzoru v *CursorName se zkrátí na BufferLength minus délka znaku null-termining.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR nebo SQL_INVALID_HANDLE.
Diagnostics
Když SQLGetCursorName vrátí buď SQL_ERROR, nebo SQL_SUCCESS_WITH_INFO, lze získat přidruženou hodnotu SQLstate, když se vyvolá SQLGetDiagRec s HandleType SQL_HANDLE_STMT a HandleCommandHandle. Následující tabulka uvádí hodnoty SQLSTATE, které SQLGetCursorName 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.) |
| 01004 | Řetězcová data, zkrácená vpravo | Buffer *CursorName nebyl dostatečně velký na to, aby vrátil celý název kurzoru, takže název kurzoru byl zkrácen. Délka nezkráceného názvu kurzoru se vrací v *NameLengthPtr. (Funkce vrátí SQL_SUCCESS_WITH_INFO.) |
| 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) Byla volána asynchronně spuštěná funkce pro popisovač připojení, který je přidružen k StatementHandle. Tato asynchronní funkce se stále vykonávala, když byla volána funkce SQLGetCursorName . (DM) SQLExecute, SQLExecDirect nebo SQLMoreResults byl volána pro StatementHandle a vrácena SQL_PARAM_DATA_AVAILABLE. Tato funkce byla volána před načtením dat pro všechny streamované parametry. (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. |
| HY015 | Není k dispozici název kurzoru | (DM) Ovladač byl ODBC 2*.x* ovladač, na příkazu nebyl otevřený kurzor a nebyl nastaven žádný kurzor s SQLSetCursorName. |
| HY090 | Neplatná délka řetězce nebo vyrovnávací paměti | (DM) Hodnota zadaná v argumentu BufferLength byla menší než 0. |
| 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
Názvy kurzorů se používají pouze v pozičních příkazech update a delete (například UPDATEnázev tabulky ... KDE PROUDkurzorového jména). Pro více informací viz Pozice Aktualizovat a Vymazat příkazy. Pokud aplikace nezavolá SQLSetCursorName k definici názvu kurzoru, ovladač vygeneruje jméno. Tento název začíná písmeny SQL_CUR.
Note
V ODBC 2*.x*, když nebyl otevřený kurzor a žádné jméno nebylo nastaveno voláním SQLSetCursorName, volání SQLGetCursorName vrátilo SQLSTATE HY015 (Žádný kurzorový název k dispozici). V ODBC 3*.x* to již neplatí; bez ohledu na to, kdy je volán SQLGetCursorName , ovladač vrátí název kurzoru.
SQLGetCursorName vrací název kurzoru, ať už byl vytvořen explicitně nebo implicitně. Název kurzoru je implicitně generován, pokud není volán SQLSetCursorName . SQLSetCursorName lze volat k přejmenování kurzoru na příkazu, pokud je kurzor v alokovaném nebo připraveném stavu.
Název kurzoru, který je nastaven explicitně nebo implicitně, zůstává nastavený, dokud není odstraněn StatementHandle , se kterým je spojen, pomocí SQLFreeHandle s HandleType SQL_HANDLE_STMT.
Související funkce
| Informace o | Podívejte se |
|---|---|
| Provádění SQL příkazu | SQLExecDirect Function |
| Spuštění připraveného příkazu SQL | FUNKCE SQLExecute |
| Příprava příkazu pro spuštění | Funkce SQLPrepare |
| Nastavení názvu kurzoru | FUNKCE SQLSetCursorName |