A mi me pasó algo parecido y me di cuenta que dejaba los querys abiertos.
Cerraba las tablas pero no los querys.
De momento no me ha vuelto a suceder.
Una manera que tengo para comprobar si hay alguna tabla abierta es
reindexar las tablas.
Si las tablas estan cerradas me reindexa perfectamente, pero si hay alguna
abierta o que se este utilizando, me salta la exepción.
Desde el formulario principal llamo a los otros de esta manera
Código Delphi
[-]
procedure TFormMain.suiButtonMaquinasClick(Sender: TObject);
begin
FormManMaquinas := TFormManMaquinas.Create(Self);
try
FormManMaquinas.ShowModal;
finally
FreeAndNil(FormManMaquinas);
end;
end;
en el evento OnActivate del formulario que abro
Código Delphi
[-]
DMMaquinas.TableMaquinas.Open;
DMMaquinas.TableHistorial.Open;
DMMaquinas.TableTipos.Open;
Y el el evento OnClose del formulario
Código Delphi
[-]
DMMaquinas.TableMaquinas.Close;
DMMaquinas.TableHistorial.Close;
DMMaquinas.TableTipos.Close;
DMListados.QueryMantenimiento.Close;
Asi es como lo solucione.
Un saludo.