Freigeben über


Vorgehensweise: Verarbeiten von Ergebnissen (ODBC)

So verarbeiten Sie Ergebnisse

  1. Rufen Sie Resultsetinformationen ab.

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

  3. Für jede Zeile im Resultset wird Folgendes ausgeführt:

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

    • Bei der Verwendung von gebundenen Spalten verwenden Sie die Daten, die nun in den Puffern mit gebundenen Spalten verfügbar sind.

    • Wenn ungebundene Spalten verwendet werden, rufen Sie SQLGetData ein oder mehrere Male auf, um die Daten für ungebundene Spalten nach der letzten gebundenen Spalte abzurufen. SQLGetData muss in zunehmender Spaltenzahlfolge aufgerufen werden.

    • Rufen Sie SQLGetData mehrere Male auf, um Daten aus einer text- oder image-Spalte abzurufen.

  4. Wenn SQLFetch das Ende des Resultsets durch Rückgabe von SQL_NO_DATA signalisiert, rufen Sie SQLMoreResults auf, um zu bestimmen, ob ein anderes Resultset verfügbar ist.

    • Wenn SQL_SUCCESS zurückgegeben wird, ist ein anderes Resultset verfügbar.

    • Wenn SQL_NO_DATA zurückgegeben wird, sind keine weiteren Resultsets verfügbar.

    • Wenn SQL_SUCCESS_WITH_INFO oder SQL_ERROR zurückgegeben wird, rufen Sie SQLGetDiagRec auf, um festzustellen, ob die Ausgabe von einer PRINT- oder RAISERROR-Anweisung verfügbar ist.

      Wenn für Ausgabeparameter oder für den Rückgabewert einer gespeicherten Prozedur gebundene Anweisungsparameter verwendet werden, verwenden Sie die jetzt in den Puffern für gebundene Parameter verfügbaren Daten. 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 von gebundenen Parametern ist. Das bedeutet, dass S Ergebnismengen verarbeitet werden müssen, wobei jede Ergebnismenge sämtliche Resultsets, Ausgabeparameter und Rückgabecodes enthält, die in der Regel von einer einzelnen Ausführung der SQL-Anweisung zurückgegeben werden.

    HinweisHinweis

    Wenn ein Resultset COMPUTE-Zeilen enthält, wird jede COMPUTE-Zeile als eigenes Resultset verfügbar gemacht. Diese COMPUTE-Resultsets werden in die normalen Zeilen eingefügt und teilen normale Zeilen in mehrere Resultsets.

  5. Sie können optional auch 'SQLFreeStmt' mit SQL_UNBIND aufrufen, um Puffer mit gebundenen Spalten freizugeben.

  6. Wenn ein weiteres Resultset verfügbar ist, fahren Sie mit Schritt 1 fort.

HinweisHinweis

Um das Verarbeiten eines Resultsets abzubrechen, bevor SQLFetch SQL_NO_DATA zurückgibt, rufen Sie 'SQLCloseCursor' auf.