SQLCloseCursor-Funktion
Konformität
Version eingeführt: ODBC 3.0 Standards Compliance: ISO 92
Zusammenfassung
SQLCloseCursor schließt einen Cursor, der für eine Anweisung geöffnet wurde, und verwirft ausstehende Ergebnisse.
Syntax
SQLRETURN SQLCloseCursor(
SQLHSTMT StatementHandle);
Argumente
StatementHandle
[Eingabe] Anweisungshandle.
Gibt zurück
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_ERROR oder SQL_INVALID_HANDLE.
Diagnose
Wenn SQLCloseCursor SQL_ERROR oder SQL_SUCCESS_WITH_INFO zurückgibt, kann ein zugeordneter SQLSTATE-Wert abgerufen werden, indem SQLGetDiagRec mit einem HandleType von SQL_HANDLE_STMT und einem Handle of StatementHandle aufgerufen wird. In der folgenden Tabelle sind die SQLSTATE-Werte aufgeführt, die häufig von SQLCloseCursor zurückgegeben werden, und die einzelnen Werte werden im Kontext dieser Funktion erläutert. die Notation "(DM)" steht vor den Beschreibungen von SQLSTATEs, die vom Treiber-Manager zurückgegeben werden. Der Rückgabecode, der jedem SQLSTATE-Wert zugeordnet ist, ist SQL_ERROR, sofern nicht anders angegeben.
SQLSTATE | Fehler | BESCHREIBUNG |
---|---|---|
01000 | Allgemeine Warnung | Treiberspezifische Informationsmeldung. (Funktion gibt SQL_SUCCESS_WITH_INFO zurück.) |
24.000 | Ungültiger Cursorstatus | Im StatementHandle war kein Cursor geöffnet. (Dies wird nur von odbc 3 zurückgegeben. x-Treiber .) |
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 seine Ursache. |
HY001 | Fehler bei der Speicherbelegung | Der Treiber konnte keinen Arbeitsspeicher zuordnen, der für die Unterstützung der Ausführung oder Fertigstellung der Funktion erforderlich ist. |
HY010 | Funktionssequenzfehler | (DM) Eine asynchron ausgeführte Funktion wurde für das Verbindungshandle aufgerufen, das dem StatementHandle zugeordnet ist, und wurde noch ausgeführt, 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 der Ausführungsparameter oder -spalten gesendet wurden. |
HY013 | Fehler bei der Speicherverwaltung | Der Funktionsaufruf konnte nicht verarbeitet werden, weil auf die zugrunde liegenden Speicherobjekte nicht zugegriffen werden konnte, möglicherweise aufgrund von geringen Arbeitsspeicherbedingungen. |
HY117 | Die Verbindung wird aufgrund eines unbekannten Transaktionsstatus angehalten. Nur trenn- und schreibgeschützte Funktionen sind zulässig. | (DM) Weitere Informationen zum angehaltenen Zustand finden Sie unter SQLEndTran-Funktion. |
HYT01 | Verbindungstimeout abgelaufen | Der Zeitraum für das Verbindungstimeout ist abgelaufen, bevor die Datenquelle auf die Anforderung geantwortet hat. Der Verbindungstimeoutzeitraum wird über SQLSetConnectAttr festgelegt, SQL_ATTR_CONNECTION_TIMEOUT. |
IM001 | Treiber unterstützt diese Funktion nicht. | (DM) Der Der StatementHandle zugeordnete Treiber unterstützt die Funktion nicht. |
Kommentare
SQLCloseCursor gibt SQLSTATE 24000 (Ungültiger Cursorzustand) zurück, wenn kein Cursor geöffnet ist. Das Aufrufen von SQLCloseCursor entspricht dem Aufrufen von SQLFreeStmt mit der Option SQL_CLOSE, mit der Ausnahme, dass SQLFreeStmt mit SQL_CLOSE keine Auswirkungen auf die Anwendung hat, wenn kein Cursor für die Anweisung geöffnet ist, während SQLCloseCursor SQLSTATE 24000 (Ungültiger Cursorzustand) zurückgibt.
Hinweis
Wenn odbc 3. x-Anwendung , die mit odbc 2 arbeitet. Der x-Treiber ruft SQLCloseCursor auf, wenn kein Cursor geöffnet ist. SQLSTATE 24000 (Ungültiger Cursorzustand) wird nicht zurückgegeben, da der Treiber-Manager SQLCloseCursorSQLFreeStmt mit SQL_CLOSE zuordnet.
Weitere Informationen finden Sie unter Schließen des Cursors.
Codebeispiel
Weitere Informationen finden Sie unter SQLBrowseConnect-Funktion und SQLConnect-Funktion.
Verwandte Funktionen
Informationen über | Finden Sie unter |
---|---|
Abbrechen der Anweisungsverarbeitung | SQLCancel-Funktion |
Freigeben eines Handles | SQLFreeHandle-Funktion |
Verarbeiten mehrerer Resultsets | SQLMoreResults-Funktion |