SQLCloseCursor-Funktion

Konformität
Eingeführte Version: ODBC 3.0 Normenkonformität: ISO 92

Summary
SQLCloseCursor schließt einen Cursor, der auf einer Anweisung geöffnet wurde, und verwirft ausstehende Ergebnisse.

Syntax

  
SQLRETURN SQLCloseCursor(  
     SQLHSTMT     StatementHandle);  

Argumente

StatementHandle
[Eingabe] Anweisungshandle.

Rücklieferungen

SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR oder SQL_INVALID_HANDLE.

Diagnostics

Wenn SQLCloseCursor SQL_ERROR oder SQL_SUCCESS_WITH_INFO zurückgibt, kann ein zugehöriger SQLSTATE-Wert erhalten werden, indem SQLGetDiagRec mit einem HandleType von SQL_HANDLE_STMT und einem Handle von StatementHandle aufgerufen wird. Die folgende Tabelle listet die von SQLCloseCursor häufig zurückgegebenen SQLSTATE-Werte auf und erklärt jeden einzelnen im Kontext dieser Funktion; die Notation "(DM)" geht den vom Treibermanager zurückgegebenen SQLSTATE-Beschreibungen voraus. Der rückgabecode, der jedem SQLSTATE-Wert zugeordnet ist, ist SQL_ERROR, sofern nicht anders angegeben.

SQLSTATE Fehler Description
01000 Allgemeiner Warnhinweis Treiberspezifische Informationsmeldung. (Funktion gibt SQL_SUCCESS_WITH_INFO zurück.)
24000 Ungültiger Cursorstatus Kein Cursor war auf dem StatementHandle geöffnet. (Dies wird nur von einem ODBC 3 zurückgegeben. X-Fahrer .)
HY000 Allgemeiner Fehler Es ist ein Fehler aufgetreten, für den kein spezifischer SQLSTATE-Wert vorhanden war und für den keine implementierungsspezifische SQLSTATE definiert wurde. Die von SQLGetDiagRec im *MessageText-Puffer zurückgegebene Fehlermeldung beschreibt den Fehler und dessen Ursache.
HY001 Speicherzuweisungsfehler Der Treiber konnte speicher nicht zuordnen, der erforderlich ist, um die Ausführung oder den Abschluss der Funktion zu unterstützen.
HY010 Funktionssequenzfehler (DM) Eine asynchron ausführende Funktion wurde für den Connection Handle aufgerufen, der mit dem StatementHandle verknüpft war, und war noch im Lauf, als diese Funktion aufgerufen wurde.

(DM) Eine asynchron ausgeführte Funktion wurde für " StatementHandle " aufgerufen und wurde noch ausgeführt, als diese Funktion aufgerufen wurde.

(DM) SQLExecute, SQLExecDirect, SQLBulkOperations oder SQLSetPos wurde für " StatementHandle " aufgerufen und SQL_NEED_DATA zurückgegeben. Diese Funktion wurde aufgerufen, bevor Daten für alle Daten bei ausführungsparametern oder -spalten gesendet wurden.
HY013 Speicherverwaltungsfehler Der Funktionsaufruf konnte nicht verarbeitet werden, da auf die zugrunde liegenden Speicherobjekte nicht zugegriffen werden konnte, möglicherweise aufgrund geringer Arbeitsspeicherbedingungen.
HY117 Die Verbindung wird aufgrund des unbekannten Transaktionsstatus angehalten. Es sind nur Trenn- und schreibgeschützte Funktionen zulässig. (DM) Weitere Informationen zum angehaltenen Zustand finden Sie unter SQLEndTran Function.
HYT01 Verbindungstimeout abgelaufen Der Zeitraum für das Verbindungstimeout ist abgelaufen, bevor die Datenquelle auf die Anforderung geantwortet hat. Der Verbindungstimeoutzeitraum wird über SQLSetConnectAttr SQL_ATTR_CONNECTION_TIMEOUT festgelegt.
IM001 Dieser Treiber unterstützt diese Funktion nicht. (DM) Der dem StatementHandle zugeordnete Treiber unterstützt die Funktion nicht.

Kommentare

SQLCloseCursor gibt SQLSTATE 24000 (ungültiger Cursor-Zustand) zurück, wenn kein Cursor offen ist. Das Aufrufen von SQLCloseCursor entspricht dem Aufruf von SQLFreeStmt mit der SQL_CLOSE-Option, mit der Ausnahme, dass SQLFreeStmt mit SQL_CLOSE keine Auswirkungen auf die Anwendung hat, wenn kein Cursor auf der Anweisung geöffnet ist, während SQLCloseCursor SQLSTATE 24000 (Invalider Cursor-Zustand) zurückgibt.

Note

Wenn es ein ODBC 3 ist. x Anwendung arbeitet mit einem ODBC 2. x-Treiber ruft SQLCloseCursor auf, wenn kein Cursor offen ist, SQLSTATE 24000 (Invalid Cursor State) wird nicht zurückgegeben, da der Driver Manager SQLCloseCursor mit SQL_CLOSE auf SQLFreeStmt abbildet.

Weitere Informationen finden Sie unter Schließen des Cursors.

Codebeispiel

Siehe SQLBrowseConnect Function und SQLConnect Function.

Weitere Informationen zu Siehe
Abbrechen der Verarbeitung von Anweisungen SQLCancel-Funktion
Einen Griff freigeben SQLFreeHandle-Funktion
Verarbeitung mehrerer Ergebnismengen SQLMoreResults-Funktion