Mit between?
Code:
select dx,dy where (rw between x - 1000 and x + 1000) and (hw between y - 1000 and y + 1000)
mit Parametern?
Code:
select dx,dy where (rw between :x1 and :x2) and (hw between :y1 and :y2)
Delphi-Quellcode:
qry.ParamByName('x1').Value := x - 1000;
qry.ParamByName('x2').Value := x + 1000;
qry.ParamByName('y1').Value := y - 1000;
qry.ParamByName('y2').Value := y + 1000;
Um welche Datenmenge handelt es sich?
Index auf rw und hw vorhanden?
Statt TADODataSet mit TADOQuery arbeiten?
Liegt die
DB lokal auf dem Rechner oder im Netz?
Mal mit den Werten von CursorLocation -> clUseServer / clUseClient spielen.
Ebenso mit CursorType.
Je nach Einstellung wird die gesamte Datenmenge erstmal zum Client "geschaufelt", was bei großen Datenmengen schon 'ne Weile dauern kann.