Moin...
Dein Problem hat mehrere Ursachen.
1. Kein Mensch mehr benutzt TTable (oder die Equivalente). Bei einer Tabelle werden immer ALLE Daten geladen. Das mag am Anfang funktionieren, je mehr Daten du hast, wird es immer langsamer.
2. Benutze immer eine
Query. Da holst du nur die Daten die du auch benötigst.
3. Bei einer
Query benutze immer Parameter!
4. Tu dir selbst einen Gefallen, und benutze sprechende Namen für Variablen, Komponenten und Felder in englisch.
Wenn du mal in einem Team arbeiten solltest, mußt du dich nicht umgewöhnen.
Delphi-Quellcode:
// Saldo bestimmen
FDQuery.SQL.Text := 'select Price from PriceTable where PriceDate between :DAF and :DAT';
FDQuery.ParamByName('DAF').AsDateTime := DateFrom; // direkt als Date ohne Konvertierung
FDQuery.ParamByName('DAT').AsDateTime := DateTo; // Ich hoffe nur, daß dein Feld in der Datenbank auch DateTime ist.
FDQuery.Open;
while not FDQuery.Eof do
begin
Saldo := Saldo + FDQuery.FieldByName('Price').AsFloat;
FDQuery.Next;
end;
PS: Da ich ohne Filter arbeite, kann ich nur raten. Das Problem liegt mit Sicherheit an der "Konvertierung" der DateTime Daten im Filterstring. Mit Parametern hast du das nicht.