Eine Anweisung verwenden (ODBC)

So verwenden Sie eine Anweisung

  1. Rufen Sie SQLAllocHandle mit einem HandleType von SQL_HANDLE_STMT auf, um ein Anweisungshandle zuzuweisen.

  2. Rufen Sie optional SQLSetStmtAttr auf, um Anweisungsoptionen oder SQLGetStmtAttr festzulegen, um Anweisungsattribute abzurufen.

    Um Servercursor zu verwenden, müssen Sie Cursorattribute auf andere Werte als ihre Standardwerte festlegen.

  3. Wenn die Anweisung mehrmals ausgeführt wird, bereiten Sie optional die Anweisung für die Ausführung mit SQLPrepare Function vor.

  4. Wenn die Anweisung gebundene Parametermarkierungen aufweist, binden Sie die Parametermarkierungen mithilfe von SQLBindParameter an Programmvariablen. Wenn die Anweisung vorbereitet wurde, können Sie SQLNumParams und SQLDescribeParam aufrufen, um die Anzahl und Merkmale der Parameter zu ermitteln.

  5. Führen Sie eine Anweisung direkt mithilfe von SQLExecDirect aus.

    -oder-

    Wenn die Anweisung vorbereitet wurde, führen Sie sie mehrmals mithilfe von SQLExecute aus.

    -oder-

    Rufen Sie eine Katalogfunktion auf, die Ergebnisse zurückgibt.

  6. Verarbeiten Sie die Ergebnisse, indem Sie die Resultsetspalten an Programmvariablen binden, indem Sie Daten aus den Resultsetspalten mithilfe von SQLGetData oder einer Kombination der beiden Methoden in Programmvariablen verschieben.

    Rufen Sie das Resultset einer Anweisung jeweils um eine Zeile ab.

    -oder-

    Rufen Sie das Resultset mit einem Blockcursor nacheinander ab.

    -oder-

    Rufen Sie SQLRowCount auf, um die Anzahl der Zeilen zu bestimmen, die von einer INSERT-, UPDATE- oder DELETE-Anweisung betroffen sind.

    Wenn die SQL-Anweisung mehrere Resultsets haben kann, rufen Sie SQLMoreResults am Ende jedes Resultsets auf, um festzustellen, ob zusätzliche Resultsets verarbeitet werden sollen.

  7. Nachdem Ergebnisse verarbeitet wurden, können die folgenden Aktionen erforderlich sein, um das Anweisungshandle zum Ausführen einer neuen Anweisung verfügbar zu machen:

    • Wenn Sie SQLMoreResults erst aufgerufen haben, wenn sie SQL_NO_DATA zurückgegeben hat, rufen Sie SQLCloseCursor auf, um den Cursor zu schließen.

    • Wenn Sie Parametermarkierungen an Programmvariablen gebunden haben, rufen Sie SQLFreeStmt mit Option auf SQL_RESET_PARAMS, um die gebundenen Parameter freizugeben.

    • Wenn Sie Resultsetspalten an Programmvariablen gebunden haben, rufen Sie SQLFreeStmt mit Option auf SQL_UNBIND, um die gebundenen Spalten freizugeben.

    • Um das Anweisungshandle wiederzuverwenden, wechseln Sie zu Schritt 2.

  8. Rufen Sie SQLFreeHandle mit einem HandleType von SQL_HANDLE_STMT auf, um den Anweisungshandle frei zu geben.

Siehe auch

Ausführen von Themen mit Vorgehensweisen für Abfragen (ODBC)