![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2
|
|||
|
|||
|
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. |
|
|
|