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

SQL Anywhere 11.0.1 (Deutsch) » UltraLite - C- und C++-Programmierung » Anwendungsentwicklung » Anwendungen mit der UltraLite C++-API entwickeln » Datenzugriff mit der Tabellen-API

 

Zeilen suchen

UltraLite verfügt über verschiedene Modi für die Arbeit mit Daten. Zwei dieser Methoden, nämlich den Find- und den Lookup-Modus, können Sie für die Suche verwenden. Das Table-Objekt verfügt über zwei Methoden, die diesen Modi zum Ausfindigmachen bestimmter Zeilen in einer Tabelle entsprechen:

Hinweis

Die Spalten, die mit der Find- und der Lookup-Methode gesucht werden, müssen sich in dem Index befinden, der zum Öffnen der Tabelle benutzt wird.

  • Find-Methoden   Diese Methoden platzieren den Cursor auf die erste Zeile, die den angegebenen Suchwerten genau entspricht, und zwar anhand der Sortierreihenfolge, die beim Öffnen des Table-Objekts angegeben wurde. Sollte die Suche nicht erfolgreich sein, wird die Anwendung vor der ersten oder nach der letzten Zeile positioniert.

  • Lookup-Methoden   Diese Methoden platzieren den Cursor gemäß der Sortierfolge, die beim Öffnen des Table-Objekts angegeben wurde, auf die erste Zeile, die größer gleich dem angegebenen Suchwert ist.

♦  So suchen Sie nach einer Zeile
  1. Aktivieren Sie den Find- oder Lookup-Modus.

    Rufen Sie eine Methode für das Table-Objekt auf, um den Modus festzulegen. Der folgende Code leitet beispielsweise den Find-Modus ein.

    tbl.FindBegin();
  2. Legen Sie Suchwerte fest.

    Legen Sie die Suchwerte in der aktuellen Zeile fest. Die Festlegung dieser Werte betrifft nur den Puffer, der die aktuelle Zeile enthält, nicht die Datenbank. Das nachstehende Codebeispiel setzt den Wert im Puffer auf Kaminski.

    ULValue lname_col = t->GetSchema()->GetColumnID( UL_TEXT("lname") );
    ULValue v_lname( UL_TEXT("Kaminski") );
    tbl.Set( lname_col, v_lname );
  3. Suchen Sie nach der Zeile.

    Rufen Sie die geeignete Methode zum Ausführen der Suche auf. Mit dem folgenden Code wird z.B. nach der ersten Zeile gesucht, die genau mit dem angegebenen Wert im aktuellen Index übereinstimmt:

    Für Indizes mit mehreren Spalten wird immer ein Wert für die erste Spalte benutzt, aber Sie können die anderen Spalten auslassen.

    tCustomer.FindFirst();
  4. Suchen Sie nach der nächsten Instanz der Zeile.

    Rufen Sie die geeignete Methode zum Ausführen der Suche auf. Für einen Suchvorgang ermittelt FindNext die nächste Instanz der Parameter im Index. Beim Nachschlagen ermittelt MoveNext die nächste Instanz.

Weitere Hinweise finden Sie unter UltraLite_Table_iface-Klasse.