Ver Mensaje Individual
  #2  
Antiguo 16-07-2004
k2k2k2 k2k2k2 is offline
Miembro
 
Registrado: mar 2004
Posts: 28
Reputación: 0
k2k2k2 Va por buen camino
Talking

Bueno acabo de encontrar la respuesta a mi quebradero de cabeza, asi que me respondo yo mismo.

El problema estaba en que no puedo cerrar la base de datos si tienes una ventana abierta conectada a la base de datos; intente cerrando la tabla que tenía asociado a esta ventana, es decir IBTable.Active := false, pero no vale con esto. Para que la base de datos desconecte sin error, debemos incluso cerrar todas las ventanas conectadas a la base de datos, y además liberar la memoria de ellas.

Un trozo de código:
...
// Cerramos la conexión con la base de datos.
frmPrincipal.Close;
frmPrincipal.Free;
DMPrincipal.db.Connected:=false;
// Comenzar
ServiceStart;
// Si se quiere ver el progreso...
if Verbose then
begin
While not Eof do
MRestore.Lines.Add(GetNextLine);
end;
finally
Active := False;
// Vovemos a conectar con la base de datos
DMPrincipal.Db.Connected:=true;
DMPrincipal.txn.Active:=true;
DMPrincipal.IBTPacientes.Active:=true;
Application.CreateForm(TfrmPrincipal, frmPrincipal);
frmPrincipal.Show;
Screen.Cursor := crDefault;

...
Bueno espero que esta explicación le sirve a alguién. Un saludo.
Responder Con Cita