wenn man bei einem
Query oder Table den Filter setzt (
Table1.Filter := 'Column1 = abc';
), wird die Datenmenge, welche die Komponente abrufen soll, neu abgerufen (mit einer Where-Klausel o.ä.) oder nicht?
Läßt sich doch ganz einfach testen:
Du programmierst dir eine Methode zum Setzen bzw. Löschen des Filters:
Delphi-Quellcode:
private {private Deklarationen}
Procedure TFormMain.Filtern(MyTable : TTable; MyFilter : String; Setzen : Boolean);
begin
MyTable.Filtered := False;
if Setzen then
begin
MyTable.Filter := MyFilter;
MyTable.Filtered := True;
end;
end;
Die rufst du – meinetwegen mit einem Buttonklick – auf, nachdem du mit deinem Lieblings-Datenbank-Manager einen Wert in dieser Tabelle geändert hast. Wird der geänderte Wert auch in deiner Anwendung angezeigt, hat das Setzen des Filters aktuelle Daten aus der
DB geschaufelt, andernfalls nicht.
Das habe ich mir auch kurz nach dem Erstellen gedacht und gemacht.
Habe nun festgestellt, dass bei einem Filter die Daten aus der Datenbank neu abgerufen werden.