Pues te comento que en los formularios que he modificado, realizo varias operaciones con la BD, hago algunos JOIN con varias tablas, manejo una tabla temporal con un MemData, trabajo con firebird y según entiendo al hacer un commit se afectan los cambios en la base de datos y todo, no obstante tengo una pequeña funcion que se encarga de cerrar todos los componentes que tiene que ver con la BD, no se si es la mejor forma, pero aki lo pongo (ademas igual y le sirve a alguien mas).
Código Delphi
[-]
procedure TfrTomaInv.CierraQueries;
var
I: Integer;
begin
for I:=0 to ComponentCount-1 do
begin
if (Components[i] is TIBTransaction) and (TIBTransaction(Components[i]).InTransaction) then
TIBTransaction(Components[i]).Commit;
if (Components[i] is TIBQuery) then
TIBQuery(Components[i]).Close;
if (Components[i] is TIBStoredProc) then
TIBStoredProc(Components[i]).Close;
if (Components[i] is TIBDataSet) then
TIBDataSet(Components[i]).Close;
if (Components[i] is TdxMemData) then
TdxMemData(Components[i]).Close;
end;
end;
La mayoria de mis formularios se crean al llamarlos ya que mi aplicacion es MDI, solo tengo un formulario con una grilla de detalle (que es llamado con doble clic desde una cuadricula que muestra la tabla maestro), y uno que nunca visualizo, lo utilizo para llenar un richedit, para imprimir un ticket (cosa con la que por cierto me ayudaste Neftalí
![Big Grin](http://www.clubdelphi.com/foros/images/smilies/biggrin.gif)
), y claro un modulo de datos que uso para la conexion.
Y GRACIAS por el interes en ayudar, a ver si con esto me encuentras algún fallo. Salu2