problem mit Suchen in Query.



  • Eine Frage zu Borland Beispiel „Contacts“. Kann Jemand mir sagen, wie ich suchen nach einem Wort im Feld "contact" starten kann?

    Meine Idee ist:
    int m=0 ;
    AnsiString asSuch;
    do
    {
    asSuch = Query1->Fields->FindField("contact")->AsString;
    m++;

    } while ( m<=Query1->RecordCount);

    asSuch liefert mir leider immer gleichen Name. Oder gibt es bessere Weg zu suchen?

    Gruß
    S.Mathi



  • Hallo

    entweder erweiterst du die SLQ-Anweisung der TQuery vor der Ausführung der Abfrage um die Bedingung in der WHERE-Klausel, oder du verwendest bei bereits geöffneter TQuery die Methode TQuery::Locate().

    bis bald
    akari



  • Ich versuche gerade mit Locate() zu lösen.

    Muss ich nachdem Locate() Next() aufrufen damit weiter geht?

    wenn ich next() aufrufe, wird parallel auch das Fenster aktualisiert. Wenn es geht möchte es vermeiden.

    Gruß
    S.Mathi



  • Hallo

    nein, Next() brauchst/darfst du nicht aufzurufen.
    Locate() setzt die Datenmenge bereits auf das Suchergebnis.

    bis bald
    akari



  • Ich habe 3 Daten Sätze. Sind alle 3 Namen, Element dieser Datenmenge?

    wird automatsche alle Datensätze durchgesucht?

    do
    {
    Edit1->Text = Query1->Fields->FindField("contact")->AsString;
    m++;
    blGefunden=Query1->Locate("contact", "Mar",SearchOptions);
    }
    while ( m<=Query1->RecordCount);

    Obwohl eine Person Mariachi heißt, ich suche nach "Mar" bekomme ich kein richtiges Ergebnis.
    woran könnte es liegen?

    Danke im Voraus.
    S.Mathi 😞



  • wie sind denn deine SearchOptions?

    versuch mal:

    blGefunden = Query1->Locate("contact", "Mar",TLocateOptions() << loPartialKey << loCaseInsensitive);
    


  • Es funktioniert.

    Gruß
    S.Mathi :xmas1: :xmas2:


Anmelden zum Antworten