Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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.
Gerelateerde functies
| 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 |