Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox Datenbanken durchsuchen bzw. Filtern (https://www.delphipraxis.net/9235-paradox-datenbanken-durchsuchen-bzw-filtern.html)

D.Schmidt 21. Sep 2003 14:03


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

Sharky 21. Sep 2003 14:28

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:
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;
Das % in der LIKE Abfrage ist mit dem Wildcart * zu vergleichen.

D.Schmidt 21. Sep 2003 18:21

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:

D.Schmidt 21. Sep 2003 20:05

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:

r_kerber 22. Sep 2003 13:42

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;

D.Schmidt 22. Sep 2003 23:00

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

MrSpock 23. Sep 2003 07:39

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:
SELECT *
FROM Artikel
WHERE SUBSTRING(Artikelname, 1, 2) = 'CH'
P.S.: Die Syntax von Substr kann, sofern es unterstützt wird auch von der oben gezeigten abweichen. Paradox benutzt z.B.:

SQL-Code:
select * from abteilung
where substring(Abteilung from 1 for 1) = 'E'

r_kerber 23. Sep 2003 08:49

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;

D.Schmidt 24. Sep 2003 01:59

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