Hallo X-Dragon,
keine Panik, das ist verhältnismäßig einfach, allerdings abhängig von der Datenbank, die Du verwendest. Zudem gibt es zwei Möglichkeiten, die angezeigten Datenstätze auf das Gesuchte zu reduzieren, nämlich über
SQL (dann werden nur die gesuchten Records in die Datenmenge geschoben), oder per Filter über die geöffnete Datenmenge (OnFilterRecord). Ein Beispiel wär auch gut gewesen, aber gut, mach ich eins, zunächst mal die
SQL Variante. Angenommen, Du suchst in einer Adresstabelle alle Dortmunder Adressen:
Delphi-Quellcode:
with Query1
do begin
if Open
then Close;
SQL.Clear;
SQL.Add('
SELECT * FROM Adressen WHERE ORT LIKE ' + QuotedStr('
Dortmund');
Open;
end;
QuotedStr setzt Hochkommata vor und hinter den Suchstring und ist zwingend erforderlich!
Sollen alle Datensätze gefiltert werden, deren Ort mit 'Dor' beginnt, also z.B. auch Dormagen, kann die SELECT Anweisung mit Wildcard abgeschickt werden, das Zeichen ist datenbankabhängig (% oder &):
'SELECT * FROM Adressen WHERE ORT LIKE ' + QuotedStr('Dor%')
Das Wildcard Zeichen wird in der Regel an die Usereingabe per Code angehängt und/oder vorangestellt, je nach Fragestellung. Alternativ kannst Du den
SQL String auch mit Format(... %s, ...) aufbauen. Datenbanken wie z.B. Interbase/Firebird besitzen eine erweiterte
SQL Syntax und kennen WHERE Klauseln wie 'WHERE Ort STARTING WITH ...'
Falls Du Code für OnFilterRecord brauchst, sach bescheid.
gruß, harrybo