Entscheidend ist, ob auf dem Feld
EAN ein
Index liegt oder nicht.
Falls ja, dauert die Abfrage unter 0.5 Sekunden; falls nein,
dauert es wesentlich länger, weil die gesamte Tabelle durchsucht werden
muss (Full Table Scan).
Übrigens:
Datenmenge.
Active := False;
ist das Gleiche wie
Datenmenge.
Close;
In deinem Fall wird also doppelt gemoppelt.
Ausserdem:
Anstatt die Datenmenge zu schliesen und erneut zu öffnen, könnte der Aufruf von
Refresh oder
Requery deutlich schneller sein.
Delphi-Quellcode:
dmData.QRY_LIEFERUNGEN.ParamByName('EAN').Value:=dmData.ibProdukte_FilteredEAN.AsString;
if dmData.QRY_LIEFERUNGEN.Active then
dmData.QRY_LIEFERUNGEN.Requery
else
dmData.QRY_LIEFERUNGEN.Open;