Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Bases de datos > Firebird e Interbase
Register FAQ Members List Calendar Guía de estilo Search Today's Posts Mark Forums Read

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 31/01/2017
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Problemas con TIBRestoreService

Tengo este código en BCB 6 para restaurar un BB.DD. hecha con FB 2.5:
Code:
try
{
     Query1->Transaction->Active = false;
     Afiliados->Connected        = false;
               
     IBRestoreService1->LoginPrompt = false;
     IBRestoreService1->Params->Add("user_name=sysdba");
     IBRestoreService1->Params->Add("password=masterkey");
     IBRestoreService1->DatabaseName->Add(Afiliados->DatabaseName);
     IBRestoreService1->BackupFile->Add(pItem->SubItems->Strings[2]);
     IBRestoreService1->Active = true;
     IBRestoreService1->ServiceStart();

     while (IBRestoreService1->IsServiceRunning)
          Memo1->Lines->Add(IBRestoreService1->GetNextLine());
}

__finally
{
     IBRestoreService1->Active   = false;
     Afiliados->Connected        = true;
     Query1->Transaction->Active = true;
}
La copia de seguridad a restaurar la elijo a partir de TListView en el que muestro las que hay guardadas. El problema aparece al comenzar a restaurarse el fichero, en cuanto se ejecuta por primera vez el while. Me da este error:

El error, al menos así lo interpreto, parece indicar que la base de datos está en uso ¡cuando acabo de cerrarla al inicio del proceso!
Reply With Quote
  #2  
Old 31/01/2017
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Puede que esté siendo usada por otro programa, ibexpert, por ejemplo? ¿el propio bcb?
Reply With Quote
  #3  
Old 31/01/2017
Neftali [Germán.Estévez]'s Avatar
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Join Date: Jul 2004
Location: Barcelona - España
Posts: 19,449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Debes tener una conexión abierta contra ese fichero en algún otro sitio (aplicación).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Reply With Quote
  #4  
Old 31/01/2017
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
No, seguro. Las pruebas las estoy haciendo en local.
Reply With Quote
  #5  
Old 31/01/2017
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Quote:
Originally Posted by Angel.Matilla View Post
No, seguro. Las pruebas las estoy haciendo en local.
No tiene nada que ver.
Reply With Quote
  #6  
Old 31/01/2017
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
No tiene nada que ver.
Me refería a que seguro que no hay nada más conectado a la base de datos. Al estar probando en local sé que está conectado o no.
Reply With Quote
  #7  
Old 31/01/2017
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Prueba a darle un shutdown con gfix, y así te aseguras.
Reply With Quote
  #8  
Old 31/01/2017
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
No se me ocurrió. Probaré.
Reply With Quote
  #9  
Old 31/01/2017
Neftali [Germán.Estévez]'s Avatar
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Join Date: Jul 2004
Location: Barcelona - España
Posts: 19,449
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Yo te iba a decir que justo antes de hacer la prueba reiniciaras el servicio. Si hubiera algo conectado, se desconectará.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Reply With Quote
  #10  
Old 19/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Retomo este hilo porque no sé por qué está volviendo a fallar. Tengo este código:
Code:
GesInt->Connected = false;
ShellExecute(NULL, "open", AnsiString("C:\Program Files\Firebird\Firebird_2_5\bin\gfix.exe -force").c_str(), "", "", SW_HIDE);
Restore->LoginPrompt = false;
Restore->Params->Add("user_name=sysdba");
Restore->Params->Add("password=masterkey");
Restore->BackupFile->Add(cAux);
Restore->DatabaseName->Add(GesInt->DatabaseName);
Restore->Active = true;
Restore->ServiceStart();

while (Restore->IsServiceRunning)
     Memo1->Lines->Add(Restore->GetNextLine());

Restore->Active = false;
GesInt->Connected = true;
Otra vez me vuelve a dar el mensaje que la base de datos está en uso cuando se ejecuta por primera vez el bucle while y no tengo ni idea de por donde coger el error. El parámetro force de gfix lo he tomado de los mensajes de la propia herramienta:
Quote:
-force force database shutdown
Reply With Quote
  #11  
Old 19/04/2023
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
¿Recordaste hacer commit o rollback por si hay alguna transacción abierta?


Código Delphi [-]
if DB.defaultransaction.intransaction then
  ...
Reply With Quote
  #12  
Old 19/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Código Delphi [-]
if DB.defaultransaction.intransaction then
  ...
Sí, de hecho antes de cerrar la base de datos antes hago esto:
Code:
if (fMenu->tGesInt->Active)
     fMenu->tGesInt->Commit();
if (fMenu->tAuxiliar->Active)
     fMenu->tAuxiliar->Commit();
fMenu->GesInt->CloseDataSets();
Reply With Quote
  #13  
Old 19/04/2023
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si estás restaurando una BD, supongo que no existe una BD con el mismo nombre.
En lugar de "Restore" usa "Create".
Aparte de eso, no me queda claro si estás teniendo problemas creando un backup o restaurando una backup.
Reply With Quote
  #14  
Old 20/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Si estás restaurando una BD, supongo que no existe una BD con el mismo nombre.
En lugar de "Restore" usa "Create".
Aparte de eso, no me queda claro si estás teniendo problemas creando un backup o restaurando una backup.
Gracias por la respuesta. El problema lo tengo al restaurar un backup. La BB.DD. sí existe, pero imagina (me ha ocurrido a veces) que se corrompe alguna tabla): si hago el restore desde SQL Manager, aunque exista, me lo hace bien incluso usando el backup obtenido con la aplicación, y desde el programa antes también restauraba correctamente.
Reply With Quote
  #15  
Old 20/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Angel.Matilla View Post
Code:
while (Restore->IsServiceRunning)
     Memo1->Lines->Add(Restore->GetNextLine()); <<--- Aquí es donde da el error
Corrijo la información que di ayer. El error realmente lo da donde señalo.
Reply With Quote
  #16  
Old 20/04/2023
Casimiro Noteví's Avatar
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Join Date: Sep 2004
Location: En algún lugar.
Posts: 32,682
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Si existe la BD entonces renómbrala antes de restaurar la nueva.
Seguramente ese Sql manager la borra antes de restaurar.
Reply With Quote
  #17  
Old 21/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Si existe la BD entonces renómbrala antes de restaurar la nueva.
Seguramente ese Sql manager la borra antes de restaurar.
Haré la prueba y ya os diré. Gracias.
Reply With Quote
  #18  
Old 21/04/2023
Angel.Matilla's Avatar
Angel.Matilla Angel.Matilla is offline
Miembro
 
Join Date: Jan 2007
Location: Toledo - España
Posts: 1,418
Poder: 21
Angel.Matilla Va por buen camino
Quote:
Originally Posted by Casimiro Notevi View Post
Si existe la BD entonces renómbrala antes de restaurar la nueva.
Seguramente ese Sql manager la borra antes de restaurar.
Efectivamente ese era el problema. Muchas gracias por iluminarme.
Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
TIBBackupService y TIBRestoreService en maquina con varios firebird pjmedina Firebird e Interbase 0 05/05/2015 13:30


All times are GMT +2. The time now is 03:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi