Irgendwie sagst Du uns hier nicht alles... Ich habe das jetzt mal mit ADS ausprobiert. Und zwar mit
SQL-Code:
Select * from kunden
where (Upper(Name_1) like :p1) or
(Upper(Name_2) like :p1) or
(Upper(Name_3) like :p1) or
(Upper(Strasse) like :p1)
Was vom Prinzip das gleiche ist. Dann folgender kleiner Code:
Delphi-Quellcode:
procedure TFormAdsTest.ButtonExecSqlClick(Sender: TObject);
var
V_SuchString : string;
ParamStrings : string;
i : integer;
begin
V_SuchString := 'AB';
AdsQuery.Close;
AdsQuery.Params[0].AsString := UPPERCASE('%'+V_Suchstring+'%');
AdsQuery.Open;
for i := 0 to AdsQuery.Params.Count-1 do
ParamStrings := ParamStrings+inttostr(i)+': '+AdsQuery.Params[i].AsString+#13;
ShowMessage(Format('Gefunden %d', [AdsQuery.Recordcount])+#13+ParamStrings);
end;
Ergibt folgende Ausgabe:
Zitat von
Project1:
Gefunden 140
0: %AB%
1: %AB%
2: %AB%
3: %AB%
Das gleiche noch einmal mit P1 auf P0 -> Kein Unterschied. Es werden also immer alle gleichbenannten Parameter gefüllt.