Freigeben über


Verarbeiten von Ergebnissen: Prozessergebnisse

Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)

Die Verarbeitungsergebnisse in einer ODBC-Anwendung müssen zuerst die Merkmale des Resultsets bestimmen und dann die Daten mithilfe von SQLBindCol oder SQLGetData in Programmvariablen abrufen.

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. Aufrufe von SQLGetData müssen in aufsteigender Reihenfolge der Spaltennummer erfolgen.

    • 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 weiteres 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.

    Hinweis

    Wenn ein Resultset COMPUTE-Zeilen (Berechnungszeilen) 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 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.

Hinweis

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

Weitere Informationen

Abrufen von Resultsetinformationen (ODBC)