Bien, deberias hacer algo asi
Código Delphi
[-]
query.Active := false;
query.SQL.Text := 'insert into ...';
query.ExecSQL;
query.SQL.Text := 'select * from ...';
query.Active := true;
al final debes abrirla para poder seguir trabajando con ella. Usa el debugger (f5,f7,f8) para saber exactamente en que linea te salta y prueba de ponernos el codigo, si aun no se soluciona.
PD: personalmente siempre uso active := false, active := true, aunque creo que son completamente equivalentes. Eso si, para el select el active/open. Para el resto, el execsql. No entiendo esta distincion en ado, pues en bde no ocurre, pero asi es. Saludos.