Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » UltraLite C++-Anwendungsentwicklung » Datenerstellung und -änderung mit SQL-Anweisungen

 

Daten mit SELECT abrufen

Mit der SELECT-Anweisung können Sie Informationen aus der Datenbank abrufen. Wenn Sie eine SELECT-Anweisung ausführen, gibt die PreparedStatement.ExecuteQuery-Methode ein ResultSet-Objekt zurück.

 Ausführen einer SELECT-Anweisung
  1. Deklarieren Sie die erforderlichen Variablen mit dem folgenden Code:

    ULPreparedStatement * prepStmt;
    ULResultSet * resultSet;
  2. Bereiten Sie eine SQL-Anweisung für die Ausführung vor.

    Der folgende Code bereitet eine SELECT-Anweisung für die Ausführung vor:

    prepStmt = conn->PrepareStatement("SELECT MyColumn1 FROM MyTable");
  3. Prüfen Sie bei der Vorbereitung der Anweisung, ob Fehler auftreten.

    Beispiel: Der folgende Code ist nützlich, wenn Sie eine Prüfung auf SQL-Syntaxfehler vornehmen:

    if( prepStmt == NULL ) {
        const ULError * ulerr;
        ulerr = conn->GetLastError();
        // write code to handle the error
        return;
    }
  4. Führen Sie die SQL-Anweisung aus und geben Sie ein Ergebnismengenobjekt zurück, das verwendet werden kann, um auf die Ergebnisse der Abfrage zuzugreifen.

    resultSet = prepStmt->ExecuteQuery();
    if( resultSet == NULL ) {
        const ULError * ulerr;
        ulerr = conn->GetLastError();
        // write code to handle the error
        prepStmt->Close();
        return;
    }
  5. Durchlaufen Sie die Zeilen mithilfe der Next-Methode. Speichern Sie das Ergebnis als Zeichenfolge in einem Puffer.

    Die Next-Methode bewegt den Cursor in die nächste Zeile der Ergebnismenge. Das ULResultSet-Objekt ist auf einer Zeile positioniert, wenn der Aufruf True zurückgibt. Sonst gilt: Wenn der Aufruf False zurückgibt, wurden alle Zeilen durchlaufen.

    while( resultSet->Next() ) {
        char buffer[ 100 ];
        resultSet->GetString( 1, buffer, 100 );
        printf( "MyColumn = %s\n", buffer );
    }
  6. Bereinigen Sie die Ressourcen der vorbereiteten Anweisung und des Ergebnismengeobjekts.

    Auf das Objekt der vorbereiteten Anweisung darf nicht zugegriffen werden, nachdem die Close-Methode aufgerufen wurde.

    resultSet->Close();
    prepStmt->Close();
 Siehe auch