Freigeben über


Prozessergebnisse (ODBC)

So verarbeiten Sie Ergebnisse

  1. Abrufen von Resultsetinformationen.

  2. Wenn gebundene Spalten verwendet werden, rufen Sie für jede Spalte, an die Sie eine Bindung herstellen möchten, SQLBindCol auf, um einen Programmpuffer an die Spalte zu binden.

  3. Für jede Zeile im Resultset:

    • Rufen Sie SQLFetch auf, um die nächste Zeile abzurufen.

    • Wenn gebundene Spalten verwendet werden, verwenden Sie jetzt die Daten, die in den gebundenen Spaltenpuffern verfügbar sind.

    • Wenn ungebundene Spalten verwendet werden, rufen Sie SQLGetData einmal auf, um die Daten für ungebundene Spalten nach der letzten gebundenen Spalte abzurufen. Anrufe, die SQLGetData in zunehmender Reihenfolge der Spaltennummer erfolgen sollen.

    • Rufen Sie mehrmals auf SQLGetData , um Daten aus einer Text- oder Bildspalte abzurufen.

  4. Wenn SQLFetch das Ende des Resultsets signalisiert, indem SQL_NO_DATA zurückgegeben wird, rufen Sie SQLMoreResults auf, um zu ermitteln, ob ein anderer Resultset verfügbar ist.

    • Wenn sie SQL_SUCCESS zurückgibt, ist ein weiteres Resultset verfügbar.

    • Wenn sie SQL_NO_DATA zurückgibt, sind keine weiteren Resultsets verfügbar.

    • Wenn sie SQL_SUCCESS_WITH_INFO oder SQL_ERROR zurückgibt, rufen Sie SQLGetDiagRec auf, um zu ermitteln, ob die Ausgabe einer PRINT- oder RAISERROR-Anweisung verfügbar ist.

      Wenn gebundene Anweisungsparameter für Ausgabeparameter oder den Rückgabewert einer gespeicherten Prozedur verwendet werden, verwenden Sie jetzt die Daten, die jetzt in den gebundenen Parameterpuffern verfügbar sind. Wenn gebundene Parameter verwendet werden, hat jeder Aufruf von SQLExecute oder SQLExecDirect die SQL-Anweisung S-Mal ausgeführt, wobei S die Anzahl der Elemente im Array gebundener Parameter darstellt. Dies bedeutet, dass es S-Resultsets gibt, die verarbeitet werden sollen, wobei jede Ergebnisgruppe alle Resultsets, Ausgabeparameter und Rückgabecodes umfasst, die in der Regel von einer einzigen Ausführung der SQL-Anweisung zurückgegeben werden.

    Hinweis

    Wenn ein Resultset Computezeilen enthält, wird jede Computezeile als separates Resultset verfügbar gemacht. Diese berechneten Resultsets werden innerhalb der normalen Zeilen interspersiert und normale Zeilen in mehrere Resultsets unterteilt.

  5. Rufen Sie optional SQLFreeStmt mit SQL_UNBIND auf, um alle gebundenen Spaltenpuffer freizugeben.

  6. Wenn ein weiteres Resultset verfügbar ist, wechseln Sie zu Schritt 1.

Hinweis

Um die Verarbeitung eines Resultsets abzubrechen, bevor SQLFetch SQL_NO_DATA zurückgibt, rufen Sie SQLCloseCursor auf.

Siehe auch

Verarbeitung von Themen mit Vorgehensweisen für Ergebnisse (ODBC)