Einzelnen Beitrag anzeigen

delphin

Registriert seit: 21. Aug 2003
Ort: Chemnitz
29 Beiträge
 
Delphi 7 Professional
 
#1

Suche in Datenbank (TTable) mit Joker am Anfang

  Alt 21. Okt 2011, 12:24
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo Datenbänkler,

ich habe mich in das Thema Datenbanken eingearbeitet und versucht das im Netz verfügbare Demo
http://www.delphi-treff.de/tutorials/datenbanken/ nachzuvollziehen.

Nunmehr habe ich eine Datenbank, in der ich
Delphi-Quellcode:
//LESEN über:
Edit1.Text:=Table1.FieldByName('Name').AsString;
und
Delphi-Quellcode:
//SCHREIBEN über
Table1.Edit;
Table1.FieldByName('Name').AsString:=Edit1.Text;
Table1.Post;
kann.

Auch die SUCHE über
Delphi-Quellcode:
//Suche via
Table1.Filtered:=false;
Table1.Filter:='Name=''Mustermann''';
Table1.Filter:='';
bringt mir in meinem mit der Datenbank verküpften DBGrid die entsprechende Filterung.

Selbst die SUCHE mit Jokern am Ende des Stringes
Delphi-Quellcode:
//Suche mit Joker am Ende via
Table1.Filtered:=false;
Table1.Filter:='Name=''Muster*''';
Table1.Filter:='';
funktioniert und listet alle Namen mit Muster* im DBGrid auf.

Suche ich aber mit Joker am Anfang der Art '*mann'
Delphi-Quellcode:
//Suche mit Joker am Anfang via
Table1.Filtered:=false;
Table1.Filter:='Name=''*mann''';
Table1.Filter:='';
bleibt die DBGrid-Liste leer.

Nach nächtlicher Suche habe ich heute morgen einen Kommentar gefunden, dass diese Art Suche nur mit TQuery über SQL gehen soll.http://www.delphipraxis.net/images/s...n_rolleyes.gif

Nun verstehe ich aber nicht, ob ich meine bisherige Datenbank inkl. Quelltext auf SQL umstellen muss oder die Komponente Query(DBTables) von der BDE-Komponente nur einfügen und mit TTable verbinden soll?

Auch die Diskussion "TQuery oder TTable?" http://www.delphipraxis.net/15457-tq...er-ttable.html bringt einen Datenbankanfänger nicht wirklich weiter in der Frage, ob:
1. Suche entweder mit TQuery oder TTable
oder
2. Suche mit TQuery in TTable
gemeint ist.

Natürlich habe ich schon versucht die o.g. Komponenten einzufügen, bei der

Suche via
Delphi-Quellcode:
//Suche mit Joker am Anfang via
with Query1 do
begin Close;
      SQL.Text := 'SELECT * FROM BESTAND WHERE (Name like :suche)';
      ParamByName('suche').asString := '%mann';
      Open;
end;
bleibt des DBGrid aber ungefiltert!

Vielleicht habe ich ja die Komponente TQuery von DBTables auch nur falsch verknüpft? Ich habe da so ein merkwürdiges Fragezeichen, dass ich nicht wegbekomme, aber beim Kompilieren auch keinen Fehler verursacht.
Bin für jede Hilfe dankbar.

Gruß Gerd

Anmerkung: Die Diskussion über Paradox und BDE habe ich bereits in aller Ausführlichkeit gelesen. Hier geht es mir nur um das Verstehen von Datenbaken. Da ich aber zur Erstellung (bzw. Umstellung) auf SQL keine so einfach Anleitung gefunden habe, habe ich die Sache damit begonnen.http://www.delphipraxis.net/images/s.../icon_wink.gif
Miniaturansicht angehängter Grafiken
fragezeichen-bei-tquery.jpg  
  Mit Zitat antworten Zitat