Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Abfrage per Eingabe (https://www.delphipraxis.net/24203-abfrage-per-eingabe.html)

abi 17. Jun 2004 12:44


Abfrage per Eingabe
 
Hallo
ich habe eine DB und ein Edit Feld.

Jetzt will ich in meinem Editfeld, z.b. einen Namen schreiben und dann soll angezeigt werden ob dieser Datensatz vorhanden ist.

Ich wollte des mit OnKeyUp machen damit ich nach jeden Buchstaben prüfen kann, ob der Datensatz vorhanden ist.

Meine DB sicht vereinfacht so aus.
Nummer
Geber_Bezeichnung
Auflösung
usw.

Jetzt wollte ich z.b. Geber_Bezeichnung suchen.

mfg
abi

Ultimator 17. Jun 2004 12:52

Re: Abfrage per Eingabe
 
Probier das doch mit dem OnChange-Ereignis.

abi 17. Jun 2004 12:58

Re: Abfrage per Eingabe
 
Hallo :hi:
mein Problem ist eh wie schreibe ich des in meinen SQL Text. :wall:

Da kann ich doch keine Variablen rein setzen, oder doch??? :gruebel:

Ansonsten muss ich mal schauen was besser ist.

abi

Stevie 17. Jun 2004 13:04

Re: Abfrage per Eingabe
 
Ich würde es mit einer LIKE-Abfrage machen:
Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  DataSet1.Filter := 'Bezeichnung LIKE ''' + Edit1.Text + '%''';
end;

abi 17. Jun 2004 13:15

Re: Abfrage per Eingabe
 
Hallo Stevie
danke für denn Tipp.

Jetzt musst du mir nur noch sagen was DataSet1.Filter ist.

Ich jetzt nur ne qrGeber und dsGeber.

Wie bekomme denn das.

Mercy.
mfg
abi

Stevie 17. Jun 2004 13:26

Re: Abfrage per Eingabe
 
Ich nehme mal anhand der Prefixe an, dass qr für Query und ds für DataSource steht...
Deine Query (welcher Art auch immer) ist von TDataSet abgeleitet (da du sie sonst nicht der DataSource zuweisen könntest)
und verfügt somit über die Eigenschaften Filtered (Boolean) und Filter (String)...

Albi 17. Jun 2004 13:30

Re: Abfrage per Eingabe
 
Hallo,

dataset kannst Du mit der Table kompo vergleichen. Aber da du eh schon alles über Query's macht, kannst Du das auch über ein Query lösen.

Code:
Select * From DB Where Bezeichnung Like ''+Edit1.Text+'%'''
Das ganze in das wie schon gesagt OnChange Ereignis eintragen und schon ist es fertig. Nun wird jedes mal nach dem Du eine Taste gedrückst hast wird dieses Ereignis ausgelöst.

Kleiner Hinweis, soll diese DB über ein Netzwerk laufen, würde ich dir davon abraten. Da ansonsten bei großen Datenmengen es zu Verzögerung kommen kann.

Stevie 17. Jun 2004 13:34

Re: Abfrage per Eingabe
 
Das kommt drauf an. Ich nehme jetzt mal an, dass es nicht zigtausend Datensätze gibt, aber trotzdem würde bei der Eingabe von "Wasweißich" 10mal (!) eine Anfrage an die Datenbank gestellt. Wenn es nicht allzu viel Daten sind, ist es besser, sie erstmal alle abzufragen und dann einzuschränken.

abi 17. Jun 2004 13:40

Re: Abfrage per Eingabe
 
Hallo Albi, Stevie
danke für die Hilfe.

Es sind vielleicht 400 Datensätze.

Und ich wollte auch das er nach jeden Tast druck schaut ob er was hat.

Muss des jetzt aber erst mal testen, melde mich.

Wenn ich mal wieder nicht weiter komme.

ciao

Chrsitian

abi 17. Jun 2004 14:10

Re: Abfrage per Eingabe
 
Hallo Stevie
hab gerade deinen Code ausprobiert.

Leider geht er nicht.

Code:
procedure TForm1.Button9Click(Sender: TObject);
begin

 dsSuchen.DataSet.Filter := 'Geber_Bezeichnung LIKE ''' +Edit1.Text+ '%''';
end;
Ich bekomme dann folgende Fehlermeldung.

Zitat:

Operation nicht anwendbar
Kannst du mir da nochmal helfen.

abi


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:17 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz