Hola Virginia
Por lo que entiendo de tu explicación, este TIBDataSet tiene campos persistentes declarados, cierto? Si es así, la consulta SQL que lances en él, deberá devolver esos campos, ni más ni menos.
Si no puedes omitir la declaración de los campos persistentes y, sólo necesitas lanzar este tipo de SQL de vez en cuando, te propongo 2 alternativas
1.- Pones un TIBQuery en el DataModule sin campos persistentes y, en él lanzas las consultas SQL (temporales) que necesites en cada momento.
2.- Dependiendo el diseño de la aplicación, la opción 1 no será válida, por lo que, esta segunda opciónsería la que convendría. Ésta es, crear tu misma el componente en ejecución de forma local al procedimiento o función (es la que yo utilizo para evitarme posibles errores)
Código:
procedure ElQueSea;
var
Q : TIBQuery;
begin
Q := TIBQuery.Create(Self);
Q.Database := MyDataBase;
try
// lanzo la consulta SQL que necesite
finally
FreeAndNil(Q);
end;
end;
Espero te sirva