![]() |
Paradox Datenbanken durchsuchen bzw. Filtern
Hi Leute
Ich habe ein kleines Problem und zwar,habe ich mir eine Datenbank erstellt,in die ich bestimmte Datensätze speicher. So nun kommt mein Problem. Nehmen wir mal an es sind einige datensätze gespeichert,z.b. Andrea .... Andreas .... Jürgen... Jens... Jaquline... u.s.w. Und ein ganz normaler user möchte einen bestimmten Datensatz suchen aber er weis nicht mehr genau wie der Datensatz heißt.Wie kann ich denn das der suchfunktion so beibringen,das der User einen oder zwei Buchstaben eingibt z.b. An oder Je u.s.w und das die Suchfunktion alle Datensätze anzeigt die die jeweiligen Buchstaben enthalten. Bitte um dringende Hilfe. vielen Dank im voraus D.Schmidt |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hai D.Schmidt,
willkommen im DP-Formum! Das ganze kannst Du über eine SQL-Abfrage machen. Für den Vergleich von "Teilstrings" bietet sich in diesem Fall der Befehl LIKE an.
Delphi-Quellcode:
Das % in der LIKE Abfrage ist mit dem Wildcart * zu vergleichen.
procedure TForm1.Button1Click(Sender: TObject);
begin with ADOQuery1 do begin Close; Clear; SQL.Text := 'SELECT * FROM tabelle WHERE (name LIKE ' + QuotedStr (Edit1.Text) + '%)'; Open; end; end; |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hallöchen
Erst einmal vielen Dank für Den Willkommensgruß SHARKY Ich werde es gleich mal ausprobieren ob es funktioniert, und werde mich dann wieder melden Bis dahin vielen Dank nochmal D.Schmidt :coder: |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hi
Habs grad mal probiert doch leider komme ich nicht weiter wenn ich das Programm starte und dann denn zu suchenden Buchstaben eingebe wonach er mir die Datensätze durchsuchen soll bricht das Programm ab und er sagt mir ' Invaild use Keyword. Token % ' Was hab ich verkehrt gemacht. Bin über jeden Tip dankbar Gruss D.Schmidt :cry: |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hallo D.Schmidt,
dann versuch's mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin with ADOQuery1 do begin Close; Clear; SQL.Text := 'SELECT * FROM tabelle WHERE (name LIKE ' + QuotedStr (Edit1.Text + '%)'); Open; end; end; |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hi
Besten dank für eure Tips aber leider haben sie mir nicht weiter geholfen ich hab immer noch das selbe Problem,ich vermute mal ganz stark das es an meiner ADOQuery Komponente liegt hab leider erst später mit bekommen das die Delphi 5 pro version kar keine ADO Komponente hat :cry: *bin erst Anfänger in Delphi* Sorry. Gibt es denn noch eine andere Möglichkeit einen Teilstring zu vergleichen zb. verwende ich die Komponenten TQuery TDatasource und TTable. Danke im voraus D.Schmidt |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hallo D. Schmidt,
grundsätzlich gibt es noch zwei weitere Möglichkeiten. Wenn du mit einem TTable Objekt arbeitest und der Name ein Schlüsselfeld ist, dann kannst du mit FindNearest den Datensatz finden, der am besten passt. So kannst du z.B. in einem Edit Feld auf OnChange reagieren und immer FindNearest aufrufen, so dass nach jeder Eingabe der am besten passende Eintrag zum aktuellen Datensatz der Datenmenge gemacht wird. Die zweite Möglichkeit wäre die Funktion SUBSTRING, sofern die Datenbank diese unterstützt. Du könntest dann Abfragen der folgenden Art erstellen:
SQL-Code:
P.S.: Die Syntax von Substr kann, sofern es unterstützt wird auch von der oben gezeigten abweichen. Paradox benutzt z.B.:
SELECT *
FROM Artikel WHERE SUBSTRING(Artikelname, 1, 2) = 'CH'
SQL-Code:
select * from abteilung
where substring(Abteilung from 1 for 1) = 'E' |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Hallo D.Schmidt,
da hat sich leider noch ein Fehler eingeschlichen :oops: Probiere es mal so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin with ADOQuery1 do begin Close; Clear; SQL.Text := 'SELECT * FROM tabelle WHERE (name LIKE ' + QuotedStr (Edit1.Text + '%') + ')'; Open; end; end; |
Re: Paradox Datenbanken durchsuchen bzw. Filtern
Halli Hallo Hallöchen
Vielen dank an alle die mir die mir geholfen haben hab es nun endlich nach langer zeit geschafft bein problem zu lösen hab es mit der TTable Komponente und FindNearest geschafft. Danke nochmal an alle :hello: :bounce2: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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