Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Filter funktioniert nicht

  Alt 27. Mär 2008, 10:09
Hallo Simon,

eine kleine Änderung an deinem Code möchte ich dir nahelegen:

Delphi-Quellcode:
procedure TMainForm.FilterEditChange(Sender: TObject);
begin
  with DBGrid do
  begin
    DataSource.DataSet.Filtered := Trim(FilterEdit.Text) <> '';
    if DataSource.DataSet.Filtered
      then DataSource.DataSet.Filter := Format('%s = %s', [SelectedField.FieldName, QuotedStr(FilterEdit.Text)]); // Edit
      else DataSource.DataSet.Filter := '';
  end;
end;
Bei den ADO-Komponenten verwendest du TADODataSet für Eregbnismengen und TADOCommand (oder direkt TADOConnection) für alles andere. TADIQuery und TADOTable sind eine Migrationshilfe für BDE-Projekte.

Nur weil es die Filter-Eigenschaft auch im IDAPI Funktionsumfang gab, ist sie nichts Schlechtes. Sie ist eine ureigene Eigenschaft jedes ADO RecordSets und dient der schnellen client-seitigen Filterung.

Wenn MainData ein Datenmodul ist, dann würde ich DataSource1 dort nur dann hinsetzen, wenn sie dort eine Master-Detail-Beziehung steuert. Die DataSource für das DBGrid gehört zum DBGrid.

Freundliche Grüße

Edit: spaces around operator
  Mit Zitat antworten Zitat