Wo wird Query1 deklariert?
Wenn Du einen Buffer-Overrun hast, dann kann Query1 plötzlich 'zerstört' sein. Beispiel
Delphi-Quellcode:
Var
EinArray : Array [0..10] of Byte;
Query1 : TQuery;
i : integer;
begin
Query1 := TQuery.Create;
for i:=0 to 14 do EinArray[i] := 0;
// Query1 ist Nil;
Das geht nur, wenn RangeChecks ausgeschaltet sind (sind sie aber per Default).
Obskure Fehler dieser Art sollten sich mit FastMem finden lassen.