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) » SQL Anywhere Server - Programmierung » .NET-Anwendungsprogrammierung » SQL Anywhere .NET-Datenprovider » Datenzugriff und Datenverarbeitung » SACommand-Objekt für den Abruf und die Verarbeitung von Daten verwenden

 

Daten mit dem SACommand-Objekt abrufen

Mit dem SACommand-Objekt können Sie in einer SQL Anywhere-Datenbank eine SQL-Anweisung ausführen oder eine gespeicherte Prozedur aufrufen. Sie können eine der folgenden Methoden verwenden, um Daten aus der Datenbank abzurufen:

  • ExecuteReader   Führt eine SQL-Abfrage aus, die eine Ergebnismenge zurückgibt. Diese Methode verwendet einen schreibgeschützten Cursor, der Daten nur für die Weitergabe ausliest. Sie können die Zeilen in der Ergebnismenge in einer Richtung durchsuchen.

    Siehe SACommand.ExecuteReader-Methode [SQL Anywhere .NET].

  • ExecuteScalar   Führt eine SQL-Abfrage aus, die einen einzelnen Wert zurückgibt. Dabei kann es sich um die erste Spalte in der ersten Zeile der Ergebnismenge oder um eine SQL-Anweisung handeln, die einen Aggregatwert wie COUNT oder AVG zurückgibt. Diese Methode verwendet einen schreibgeschützten Cursor, der Daten nur für die Weitergabe ausliest.

    Siehe SACommand.ExecuteScalar-Methode [SQL Anywhere .NET].

Wenn Sie das SACommand-Objekt verwenden, können Sie mithilfe des SADataReader-Objekts eine Ergebnismenge abrufen, die auf einem Join basiert. Änderungen (Einfügen, Aktualisieren oder Löschen) lassen sich jedoch nur an Daten vornehmen, die aus einer einzelnen Tabelle stammen. Sie können keine Ergebnismengen aktualisieren, die auf Joins basieren.

In der nachstehenden Anleitung wird das mit SQL Anywhere mitgelieferte Codebeispiel "Simple" herangezogen.

Weitere Hinweise zum Codebeispiel "Simple" finden Sie im Abschnitt Zum Verständnis des Beispielprojekts "Simple".

 Ausführen einer SQL-Abfrage, die eine komplette Ergebnismenge zurückgibt
  1. Deklarieren und initialisieren Sie ein SAConnection-Objekt.

    SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 12 Demo" );
  2. Öffnen Sie die Verbindung.

    conn.Open();
  3. Fügen Sie ein SACommand-Objekt hinzu, um eine SQL-Anweisung zu definieren und auszuführen.

    SACommand cmd = new SACommand(
         "SELECT Surname FROM Employees", conn );

    Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie die Parameter für die gespeicherte Prozedur angeben.

    Weitere Hinweise finden Sie unter Gespeicherte Prozeduren verwenden und SAParameter-Klasse [SQL Anywhere .NET].

  4. Rufen Sie die ExecuteReader-Methode auf, um das SADataReader-Objekt zurückzugeben.

    SADataReader reader = cmd.ExecuteReader();
  5. Zeigen Sie die Ergebnisse an.

    listEmployees.BeginUpdate();
    while ( reader.Read() ) 
    {
        listEmployees.Items.Add( reader.GetString(0) );
    }
    listEmployees.EndUpdate();
  6. Schließen Sie das SADataReader- und das SAConnection-Objekt.

    reader.Close();
    conn.Close();
 Ausführen einer SQL-Abfrage, die nur einen einzigen Wert zurückgibt
  1. Deklarieren und initialisieren Sie ein SAConnection-Objekt.

    SAConnection conn = new SAConnection( "Data Source=SQL Anywhere 12 Demo" );
  2. Öffnen Sie die Verbindung.

    conn.Open();
  3. Fügen Sie ein SACommand-Objekt hinzu, um eine SQL-Anweisung zu definieren und auszuführen.

    SACommand cmd = new SACommand(
        "SELECT COUNT(*) FROM Employees WHERE Sex = 'M'",
        conn );

    Wenn Sie eine gespeicherte Prozedur aufrufen, müssen Sie die Parameter für die gespeicherte Prozedur angeben.

    Siehe Gespeicherte Prozeduren verwenden.

  4. Rufen Sie die ExecuteScalar-Methode auf, um den skalaren Wert zurückzugeben.

    int count = (int) cmd.ExecuteScalar();
  5. Schließen Sie das SAConnection-Objekt.

    conn.Close();

Wenn Sie das SADataReader-Objekt verwenden, stehen diverse Get-Methoden zur Verfügung, mit denen Sie die Ergebnisse im angegebenen Datentyp zurückgeben können.

Siehe SADataReader-Klasse [SQL Anywhere .NET].

 Beispiel zu Visual Basic DataReader