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.

Informationen über Finden Sie unter
Abbrechen der Anweisungsverarbeitung SQLCancel-Funktion
Freigeben eines Handles SQLFreeHandle-Funktion
Verarbeiten mehrerer Resultsets SQLMoreResults-Funktion

Weitere Informationen

ODBC-API-Referenz
ODBC-Headerdateien