Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Överensstämmelse
Version introducerad: ODBC 3.0 Standardsefterlevnad: ISO 92
Summary
SQLCloseCursor stänger en markör som har öppnats på ett sats och kasserar väntande resultat.
Syntax
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Arguments
StatementHandle
[Indata] Instruktionshandtag.
Returns
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR eller SQL_INVALID_HANDLE.
Diagnostics
När SQLCloseCursor returnerar SQL_ERROR eller SQL_SUCCESS_WITH_INFO kan ett associerat SQLSTATE-värde erhållas genom att anropa SQLGetDiagRec med HandleType av SQL_HANDLE_STMT och ett Handle of StatementHandle. Följande tabell listar de SQLSTATE-värden som vanligtvis returneras av SQLCloseCursor och förklarar var och en i kontexten av denna funktion; notationen "(DM)" föregår beskrivningarna av SQLSTATE som returneras av Driver Manager. Returkoden som är associerad med varje SQLSTATE-värde är SQL_ERROR, om inget annat anges.
| SQLSTATE | Error | Beskrivning |
|---|---|---|
| 01000 | Allmän varning | Informationsmeddelande för drivrutinsspecifikt. (Funktionen returnerar SQL_SUCCESS_WITH_INFO.) |
| 24000 | Ogiltigt markörtillstånd | Ingen markör var öppen på StatementHandle. (Detta returneras endast av en ODBC 3. X-drivrutin .) |
| HY000 | Allmänt fel | Ett fel uppstod för vilket det inte fanns någon specifik SQLSTATE och för vilken ingen implementeringsspecifik SQLSTATE definierades. Felmeddelandet som returnerades av SQLGetDiagRec i *MessageText-bufferten beskriver felet och dess orsak. |
| HY001 | Fel vid minnesallokering | Drivrutinen kunde inte allokera minne som krävs för körning eller slutförande av funktionen. |
| HY010 | Funktionssekvensfel | (DM) En asynkront exekverande funktion anropades för anslutningshandtaget kopplat till StatementHandle och kördes fortfarande när denna funktion anropades. (DM) En asynkront exekverande funktion anropades för StatementHandle och kördes fortfarande när denna funktion anropades. (DM) SQLExecute, SQLExecDirect, SQLBulkOperations eller SQLSetPos anropades för StatementHandle och returnerades SQL_NEED_DATA. Den här funktionen anropades innan data skickades för alla data-at-execution-parametrar eller kolumner. |
| HY013 | Minneshanteringsfel | Det gick inte att bearbeta funktionsanropet eftersom det inte gick att komma åt underliggande minnesobjekt, möjligen på grund av minnesbrist. |
| HY117 | Anslutningen pausas på grund av okänt transaktionstillstånd. Endast frånkopplings- och skrivskyddade funktioner tillåts. | (DM) Mer information om pausat tillstånd finns i SQLEndTran-funktion. |
| HYT01 | Tidsgränsen för anslutningen gick ut | Tidsgränsen för anslutningen löpte ut innan datakällan svarade på begäran. Tidsgränsen för anslutningen anges via SQLSetConnectAttr, SQL_ATTR_CONNECTION_TIMEOUT. |
| IM001 | Drivrutinen stöder inte den här funktionen | (DM) Drivrutinen som är associerad med StatementHandle stöder inte funktionen. |
Comments
SQLCloseCursor returnerar SQLSTATE 24000 (Ogiltigt markörtillstånd) om ingen markör är öppen. Att anropa SQLCloseCursor är likvärdigt med att anropa SQLFreeStmt med SQL_CLOSE-alternativet, med undantaget att SQLFreeStmt med SQL_CLOSE inte påverkar applikationen om ingen markör är öppen på satsen, medan SQLCloseCursor returnerar SQLSTATE 24000 (Ogiltigt markörtillstånd).
Note
Om en ODBC 3. x applikation som fungerar med en ODBC 2. x-drivrutin anropar SQLCloseCursor när ingen markör är öppen, SQLSTATE 24000 (ogiltigt markörtillstånd) returneras inte, eftersom Driver Manager mappar SQLCloseCursor till SQLFreeStmt med SQL_CLOSE.
För mer information, se Stänga markören.
Kodexempel
Se SQLBrowseConnect Function och SQLConnect Function.
Relaterade funktioner
| Mer information om | Se |
|---|---|
| Avbryta instruktionsbearbetning | SQLCancel-funktion |
| Att frigöra ett handtag | SQLFreeHandle-funktionen |
| Bearbetande av flera resultatmängder | SQLMoreResults-funktionen |