Entwickler-Ecke

Datenbanken - Mit einem Edit-Feld in mehreren Spalten suchen


kiwicht - Mo 02.12.02 13:18
Titel: Mit einem Edit-Feld in mehreren Spalten suchen
Hallöle...

ich hab jetzt schon das halbe archiv hier durchgewühlt, aber nirgends ne antwort auf meine frage bekommen...

und zwar will ich, wie der titel ja schon sagt, mit nur einem edit-feld mehrere spalten meiner table durchsuchen.

hatte erst folgendes probiert:

table1.locate('feld1; feld2; feld2', VarArrayOf([edit1.text, edit1.text. edit1.text], [loCase...])

funzt natürlich nicht....

wer weiß weiter?

thx im voraus

kiwicht


LCS - Mo 02.12.02 13:48
Titel: Re: Mit einem Edit-Feld in mehreren Spalten suchen
Hi
kiwicht hat folgendes geschrieben:


Quelltext
1:
table1.locate('feld1; feld2; feld2', VarArrayOf([edit1.text, edit1.text. edit1.text], [loCase...])                    

funzt natürlich nicht....

Funzt schon, allerdings nicht so wie du willst :wink: Das würde einen Datensatz suchen bei dem im Feld1 und im Feld2 usw. der eingegebene Text steht.
In deinem Fall wärs einfacher eine TQuery mit einem SQL-Befehl zu verwenden. Wenn du nach Strings suchst:

Quelltext
1:
2:
3:
4:
5:
6:
7:
 sb := QuotedStr(UpperCase(Edit1.Text) + '%'); //sb ist ein String
 with TQuery.SQL do begin
   Clear;
   Add( 'SELECT * FROM TABELLE where Upper(feld1) like ' + sb);
   Add(' OR upper(feld2) like ' + sb);
   Add(' OR upper(feldx) like ' + sb);
 end;

Wenn du nach numerischen Werten suchst:

Quelltext
1:
2:
3:
4:
5:
6:
 with TQuery.SQL do begin
   Clear;
   Add( 'SELECT * FROM TABELLE where feld1 = ' + Edit1.Text);
   Add(' OR upper(feld2) = ' + Edit1.Text);
   Add(' OR upper(feldx) = ' + Edit1.Text);
 end;


Gruss Lothar


kiwicht - Mo 02.12.02 13:55

seeehr genial.

dankschön! :D