Wie Ronald geschrieben hat, sollte sich das Grid selbständig aktualisieren. Hier einmal ein Testaufbau, jegliche Verknüpfung erfolgt zur besseren Darstellung in FormCreate (absichtlich alle Namen auf den automatisch vergebenen gelassen!):
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
AdsConnection1.AliasName := 'test';
AdsConnection1.connect;
AdsQuery1.AdsConnection := AdsConnection1;
DataSource1.DataSet := AdsQuery1;
DBGrid1.DataSource := DataSource1;
DBNavigator1.DataSource := DataSource1;
end;
Ein Öffnen der Datenmenge kann zB durch einen Buttonklick erfolgen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
where: string;
begin
AdsQuery1.Close;
AdsQuery1.SQL.Text := 'select * from projekt';
if Length(Edit1.Text)>0 then
where:='(ort like :ort)';
if length(Edit2.Text)>0 then begin
if length(where)>0 then
where := where+' AND ';
where:= where+'(name like :name)';
end;
if length(where)>0 then
AdsQuery1.sql.add('WHERE '+where);
AdsQuery1.SQL.Add('order by bezeichnung');
if AdsQuery1.Params.FindParam('ort')<>nil then
AdsQuery1.ParamByName('ort').AsString := Edit1.Text+'%';
if AdsQuery1.Params.FindParam('name')<>nil then
AdsQuery1.ParamByName('name').AsString := Edit2.Text+'%';
AdsQuery1.Open;
end;
Hier ein Edit1 der Ort und in Edit2 der Name.