SQLGetCursorName Functie

Conformiteit
Versie geïntroduceerd: NALEVING van ODBC 1.0-standaarden: ISO 92

Samenvatting
SQLGetCursorName geeft de cursornaam terug die aan een gespecificeerde instructie is gekoppeld.

Syntax

  
SQLRETURN SQLGetCursorName(  
     SQLHSTMT        StatementHandle,  
     SQLCHAR *       CursorName,  
     SQLSMALLINT     BufferLength,  
     SQLSMALLINT *   NameLengthPtr);  

Arguments

StatementHandle
[Invoer] Instructiehandgreep.

CursorName
[Output] Richt op een buffer om de cursornaam terug te geven.

Als CursorName NULL is, zal NameLengthPtr nog steeds het totale aantal tekens teruggeven (exclusief het null-beëindigingsteken voor tekengegevens) dat beschikbaar is om terug te geven in de buffer waar CursorName naar wijst.

BufferLength
[Invoer] Lengte van *CursorName, in tekens.

NameLengthPtr
[Output] Pointer naar het geheugen om het totale aantal tekens (exclusief het null-beëindigingsteken) terug te geven dat beschikbaar is om terug te geven in *CursorName. Als het aantal beschikbare tekens groter is dan of gelijk aan BufferLength, wordt de cursornaam in *CursorName ingekort tot BufferLength minus de lengte van een null-terminatiekarakter.

Returns

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR of SQL_INVALID_HANDLE.

Diagnostics

Wanneer SQLGetCursorName ofwel SQL_ERROR of SQL_SUCCESS_WITH_INFO teruggeeft, kan een bijbehorende SQLSTATE-waarde worden verkregen door SQLGetDiagRec aan te roepen met een HandleType van SQL_HANDLE_STMT en een Handle van StatementHandle. De volgende tabel geeft een overzicht van de SQLSTATE-waarden die vaak door SQLGetCursorName worden geretourneerd en legt elk uit in de context van deze functie; de notatie "(DM)" gaat vooraf aan de beschrijvingen van SQLSTATES die door de Driver Manager worden teruggegeven. De retourcode die is gekoppeld aan elke SQLSTATE-waarde is SQL_ERROR, tenzij anders vermeld.

SQLSTATE Fout Description
01000 Algemene waarschuwing Stuurprogrammaspecifiek informatiebericht. (Functie retourneert SQL_SUCCESS_WITH_INFO.)
01004 Tekenreeksgegevens, rechts afgekapt De buffer *CursorName was niet groot genoeg om de volledige cursornaam terug te geven, dus werd de cursornaam afgekapt. De lengte van de onafgeknotte cursornaam wordt teruggegeven in *NameLengthPtr. (Functie retourneert SQL_SUCCESS_WITH_INFO.)
HY000 Algemene fout Er is een fout opgetreden waarvoor er geen specifieke SQLSTATE is en waarvoor geen implementatiespecifieke SQLSTATE is gedefinieerd. Het foutbericht dat door SQLGetDiagRec in de *MessageText-buffer wordt geretourneerd, beschrijft de fout en de oorzaak ervan.
HY001 Fout bij geheugentoewijzing Het stuurprogramma kan geen geheugen toewijzen dat nodig is om de uitvoering of voltooiing van de functie te ondersteunen.
HY010 Fout in functiereeks (DM) Er is een asynchroon uitgevoerde functie aangeroepen voor de verbindingsgreep die is gekoppeld aan de StatementHandle. Deze asynchrone functie werd nog uitgevoerd toen de SQLGetCursorName-functie werd aangeroepen.

(DM) SQLExecute, SQLExecDirect of SQLMoreResults werd aangeroepen voor de StatementHandle en geretourneerd SQL_PARAM_DATA_AVAILABLE. Deze functie is aangeroepen voordat gegevens zijn opgehaald voor alle gestreamde parameters.

(DM) Een asynchroon uitvoerende functie werd aangeroepen voor de StatementHandle en was nog steeds bezig toen deze functie werd aangeroepen.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations of SQLSetPos werd aangeroepen voor de StatementHandle en geretourneerd SQL_NEED_DATA. Deze functie is aangeroepen voordat gegevens werden verzonden voor alle parameters of kolommen voor uitvoering van gegevens.
HY013 Fout bij geheugenbeheer De functie-aanroep kan niet worden verwerkt omdat de onderliggende geheugenobjecten niet kunnen worden geopend, mogelijk vanwege weinig geheugen.
HY015 Geen cursornaam beschikbaar (DM) De driver was een ODBC 2*.x*-driver, er stond geen open cursor op de instructie en er was geen cursornaam ingesteld met SQLSetCursorName.
HY090 Ongeldige tekenreeks- of bufferlengte (DM) De waarde die in het argument BufferLength werd gespecificeerd, was kleiner dan 0.
HY117 De verbinding is onderbroken vanwege een onbekende transactiestatus. Alleen de verbinding verbreken en alleen-lezenfuncties zijn toegestaan. (DM) Zie SQLEndTran Function voor meer informatie over de onderbroken status.
HYT01 Time-out voor de verbinding is overschreden De time-outperiode voor de verbinding is verlopen voordat de gegevensbron op de aanvraag heeft gereageerd. De time-outperiode voor de verbinding wordt ingesteld via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT.
IM001 Stuurprogramma biedt geen ondersteuning voor deze functie (DM) Het stuurprogramma dat is gekoppeld aan de StatementHandle biedt geen ondersteuning voor de functie.

Comments

Cursornamen worden alleen gebruikt in gepositioneerde update- en delete-instructies (bijvoorbeeld UPDATEtabelnaam ... WAAR STROOM VANcursor-naam). Voor meer informatie, zie Positioneerde Update- en Verwijderingsinstructies. Als de applicatie SQLSetCursorName niet aanroept om een cursornaam te definiëren, genereert de driver een naam. Deze naam begint met de letters SQL_CUR.

Note

In ODBC 2*.x*, wanneer er geen open cursor was en er geen naam was ingesteld door een aanroep naar SQLSetCursorName, gaf een aanroep naar SQLGetCursorName SQLSTATE HY015 terug (geen cursornaam beschikbaar). In ODBC 3*.x* is dit niet langer waar; ongeacht wanneer SQLGetCursorName wordt aangeroepen, geeft de driver de cursornaam terug.

SQLGetCursorName geeft de naam van een cursor terug, ongeacht of de naam expliciet of impliciet is aangemaakt. Een cursornaam wordt impliciet gegenereerd als SQLSetCursorName niet wordt aangeroepen. SQLSetCursorName kan worden aangeroepen om een cursor op een instructie te hernoemen zolang de cursor zich in een toegewezen of voorbereide toestand bevindt.

Een cursornaam die expliciet of impliciet wordt ingesteld, blijft staan totdat de StatementHandle waarmee deze is gekoppeld wordt verwijderd, waarbij SQLFreeHandle met een HandleType van SQL_HANDLE_STMT wordt gebruikt.

Voor informatie over Zien!
Een SQL-instructie uitvoeren SQLExecDirect-functie
Een voorbereide SQL-instructie uitvoeren SQLExecute, functie
Een instructie voorbereiden voor uitvoering SQLPrepare, functie
Een cursornaam instellen SQLSetCursorName, functie

Zie ook

ODBC-API-verwijzing
ODBC-headerbestanden