![]() |
Re: Suche in der Datenban und Ausgabe im DBGrid???
:wall: :wall: :wall:
Verdammt... Dann muss ich mich verlesen haben. Aber wäre ja auch unlogisch wo man ja mit * arbeiten kann. @ romber: :oops: Sry... Ist wohl schon zu spät für mich. |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Zitat:
Zitat:
ich habe es jetzt einmal getestet. Wenn ich nur einen Parameter verwende wird dieser auch nur beim ersten vorkommen in der SQL-Abfrage gesetzt. Darum habe ich einen zweiten genommen und blubb es geht.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s: string; begin with ADOQuery1 do begin Close; sql.Clear; s := '%' + Edit1.Text + '%'; sql.Text := 'SELECT * FROM test1 ' + #10 + 'WHERE ((LOWER(kn) LIKE :suche1)' + #10 + 'OR (LOWER(name) LIKE :suche2))'; ParamCheck := True; Parameters.ParamByName('suche1').Value := LowerCase(s); Parameters.ParamByName('suche2').Value := LowerCase(s); Open; end; end; |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hehe! Danke! Geht wunderbar! :thumb:
Würde mich aber noch interessieren, warum es mit dem selben Paramete nicht geht... |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Ich nehme mal an das wenn er den Parameter ein mal gefunden und erstezt hat, er die Anfrage nicht weiter durchgeht...
|
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hai,
ich habe mir das jetzt einmal angesehen. Das Problem bei der sache ist, wie schon angedeutet wurde, das ![]() marabu hatte dafür eine "Lösung" gepostet in dem er auf ParamByName verzichtet und die Paramterliste einfach durchgeht und jedem das selbe Value zuweisst. Allerdings hat der Schlingel einen Fehler in gemacht ;-)
Code:
ParamCount liefert nämlich nicht die Anzahl der Parameter in der Parameterliste des Querys sondern die Anzahl der Parameter welche dem Programm übergeben wurden (zB: Programm.exe /1 /2 /3 ).
procedure TForm1.Button1Click(Sender: TObject);
var s: String; i: Integer; begin with ADOQuery1 do begin Close; // muss sein s := '%' + AnsiLowercase(Edit1.Text) + '%'; sql.Clear; sql.Add('SELECT * FROM KUNDEN WHERE LOWER(kn) LIKE :suche '); sql.Add('OR LOWER(xy) LIKE :suche '); sql.Add('OR LOWER(yz) LIKE :suche '); for i := 0 to [b][color=red]ParamCount[/color][/b] - 1 do Parameters.Items[i].Value := s; open; end; end; In diesem Fall müsste der Code so aussehen um das gewünschte Ergebniss zu bekommen:
Code:
.
for i := 0 to [b][color=red]Parameters.Count[/color][/b] - 1 do Parameters.Items[i].Value := s; . |
Re: Suche in der Datenban und Ausgabe im DBGrid???
Hi Sharky,
Zitat:
Fröhliche Grüße vom marabu |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 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-2025 by Thomas Breitkreuz