Freigeben über


Verwenden einer Anweisung (ODBC)

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

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 festzulegen, oder SQLGetStmtAttr, um Anweisungsattribute abzurufen.

    Um Servercursor zu verwenden, müssen Sie die Cursorattribute auf Werte setzen, die von den Standardwerten abweichen.

  3. Bereiten Sie optional die Anweisung mit der SQLPrepare-Funktionauf die Ausführung vor, wenn die Anweisung mehrmals ausgeführt wird.

  4. Binden Sie optional mit SQLBindParameterdie Parametermarkierungen an Programmvariablen, wenn die Anweisung über gebundene Parametermarkierungen verfügt. Wenn die Anweisung vorbereitet wurde, können Sie SQLNumParams und SQLDescribeParam to find the number und characteristics of the parameters.

  5. Führen Sie eine Anweisung direkt mit SQLExecDirect aus.

    - oder -

    Wenn die Anweisung vorbereitet wurde, führen Sie sie mehrmals mit SQLExecuteaus.

    - oder -

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

  6. Verarbeiten Sie die Ergebnisse, indem Sie die Resultset-Spalten an Programmvariablen binden, indem Sie Daten mit SQLGetDataoder einer Kombination der beiden Methoden aus den Resultset-Spalten zu Programmvariablen verschieben.

    Rufen Sie eine Zeile nach der anderen über das Resultset einer Anweisung ab.

    - oder -

    Rufen Sie mehrere Zeilen gleichzeitig über das Resultset mithilfe eines Blockcursors ab.

    - oder -

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

    Wenn die SQL-Anweisung über mehrere Resultsets verfügen kann, rufen Sie am Ende des Resultsets SQLMoreResults auf, um zu überprüfen, ob zusätzliche Resultsets verarbeitet werden müssen.

  7. Nachdem die Ergebnisse verarbeitet wurden, müssen möglicherweise die folgenden Aktionen ausgeführt werden, um das Anweisungshandle zum Ausführen einer neuen Anweisung verfügbar zu machen.

    • Wenn Sie SQLMoreResults nicht aufgerufen haben, bis SQL_NO_DATA zurückgegeben wurde, rufen Sie SQLCloseCursor auf, um den Cursor zu schließen.

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

    • Wenn Sie Resultset-Spalten an Programmvariablen gebunden haben, rufen Sie SQLFreeStmt auf, wobei Option auf SQL_UNBIND gesetzt ist, um die gebundenen Spalten freizugeben.

    • Gehen Sie zu Schritt 2, um das Anweisungshandle wiederzuverwenden.

  8. Rufen Sie SQLFreeHandle mit einem HandleType von SQL_HANDLE_STMT auf, um das Anweisungshandle freizugeben.

Weitere Informationen

Themen zur Vorgehensweise zum Ausführen von Abfragen (ODBC)