Funkce SQLGetCursorName

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.

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

Viz také

Referenční rozhraní ODBC API
Soubory hlaviček ODBC