![]() |
Datenbank: Paradox • Zugriff über: Delphi
Datenbank-Suche mit Locate
Ich suche eine einfache Funktion zum Durchsuchen einer Datenbank nach beliebigen Teilstrings. Mit Locate
Delphi-Quellcode:
klappt das schon ganz gut, solange das Suchkriterium am Anfang des Datenfeldes zu finden ist.
Table1.Locate('name', 'hans', [loPartialKey]);
Wie kann ich aber nun eine Übereinstimmung in der Mitte oder am Ende eines Wortes finden? Ich meine, wenn im Datenfeld z.B. 'Hans-Jürgen' steht und ich nun nicht nach 'hans' sondern nach 'jürgen' suchen möchte. |
Re: Datenbank-Suche mit Locate
Hallo matt11,
das geht am besten über ein SQL Statement, bei dem zu den LIKE Operator nutzt. Suche einmal nach LIKE im Forum. Der Einsatz wurde schon oft besprochen. |
Re: Datenbank-Suche mit Locate
Danke MrSpock,
ich hatte schon fast erwartet, dass ihr mir eine SQL-Abfrage empfehlen werdet. Scheint wohl doch die einzig brauchbare Methode zu sein. Ich dachte nur, dass ich in diesem Fall mit Delphi-Befehlen auskomme, aber dem ist wohl nicht so. |
Re: Datenbank-Suche mit Locate
Hallo matt11,
naja, du könntest natürlich auch in einer Schleife durch die Datenmenge laufen und dann den Inhalt des Feldes mit Pos() analysieren. |
Re: Datenbank-Suche mit Locate
Hallo MrSpock,
so hab' ich's letztlich auch gemacht. Bei der Menge der zu erwartenden Daten funktioniert das praktisch auch ganz gut. Ich dachte eben nur, wenn ich schon eine indizierte Datenbank habe, müsste ich auch eine seriöse Suchfunktion benutzen, aber so geht's auch. Matt |
Re: Datenbank-Suche mit Locate
hallo matt11
bei einem TTable kanst Du auch einen Filter setzen
Delphi-Quellcode:
wenn nicht mehr benötigt
procedure TForm1.SuchenBitBtnClick(Sender: TObject);
var s : string; begin s := ''; s := 'Name like' + '''' + '%ller%' + '''' + ' or Strasse < ' + '''' + 'Neuestr' + '''' ; (gibt mir alle Namen wie Müller, Miller, Schiller etc und alle Strassen die kleiner als Neuestr) Table1.filter := s; Table1.filtered := true; end;
Delphi-Quellcode:
Gruß Texas
Table1.filtered := false;
|
Re: Datenbank-Suche mit Locate
Zitat:
Delphi-Quellcode:
s:= '"ller" $ Name';
|
Re: Datenbank-Suche mit Locate
Zitat:
Lieber ein TQuery mit "SELECT ab FROM xy WHERE field LIKE %text%" verwenden. gruessle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz