Delphi-Quellcode:
sqFirebird.Active := True;
sqFirebird.ExecSQL();
sqFirebird.Refresh;
sqFirebird.Active := False;
Das kannst Du eindampfen zu
sqFirebird.ExecSQL();
Damit sollte das Problem mit dem Cursor auch behoben sein. Ich habe es jetzt nicht ausprobiert, denke aber, dass im Moment Deine Abfrage sogar 3x ausgeführt wird.
(1. Active := True 2. ExcecSQL 3. Refresh)
Wenn Du sowieso keine Rückgabewerte erwartest, reicht das ExcecSQL aus.
Gruß,
Jens