Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.
Verwandte Funktionen
| Weitere Informationen zu | Siehe |
|---|---|
| Abbrechen der Verarbeitung von Anweisungen | SQLCancel-Funktion |
| Einen Griff freigeben | SQLFreeHandle-Funktion |
| Verarbeitung mehrerer Ergebnismengen | SQLMoreResults-Funktion |