Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 31-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
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:
Código:
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!
Responder Con Cita
  #2  
Antiguo 31-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Puede que esté siendo usada por otro programa, ibexpert, por ejemplo? ¿el propio bcb?
Responder Con Cita
  #3  
Antiguo 31-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
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.
Responder Con Cita
  #4  
Antiguo 31-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
No, seguro. Las pruebas las estoy haciendo en local.
Responder Con Cita
  #5  
Antiguo 31-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Angel.Matilla Ver Mensaje
No, seguro. Las pruebas las estoy haciendo en local.
No tiene nada que ver.
Responder Con Cita
  #6  
Antiguo 31-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Responder Con Cita
  #7  
Antiguo 31-01-2017
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Prueba a darle un shutdown con gfix, y así te aseguras.
Responder Con Cita
  #8  
Antiguo 31-01-2017
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
No se me ocurrió. Probaré.
Responder Con Cita
  #9  
Antiguo 31-01-2017
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
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.
Responder Con Cita
  #10  
Antiguo 19-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Retomo este hilo porque no sé por qué está volviendo a fallar. Tengo este código:
Código:
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:
Cita:
-force force database shutdown
Responder Con Cita
  #11  
Antiguo 19-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Recordaste hacer commit o rollback por si hay alguna transacción abierta?


Código Delphi [-]
if DB.defaultransaction.intransaction then
  ...
Responder Con Cita
  #12  
Antiguo 19-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Código Delphi [-]
if DB.defaultransaction.intransaction then
  ...
Sí, de hecho antes de cerrar la base de datos antes hago esto:
Código:
if (fMenu->tGesInt->Active)
     fMenu->tGesInt->Commit();
if (fMenu->tAuxiliar->Active)
     fMenu->tAuxiliar->Commit();
fMenu->GesInt->CloseDataSets();
Responder Con Cita
  #13  
Antiguo 19-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi 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.
Responder Con Cita
  #14  
Antiguo 20-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Responder Con Cita
  #15  
Antiguo 20-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Angel.Matilla Ver Mensaje
Código:
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.
Responder Con Cita
  #16  
Antiguo 20-04-2023
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi 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.
Responder Con Cita
  #17  
Antiguo 21-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Responder Con Cita
  #18  
Antiguo 21-04-2023
Avatar de Angel.Matilla
Angel.Matilla Angel.Matilla is offline
Miembro
 
Registrado: ene 2007
Posts: 1.350
Poder: 19
Angel.Matilla Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
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.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TIBBackupService y TIBRestoreService en maquina con varios firebird pjmedina Firebird e Interbase 0 05-05-2015 13:30:51


La franja horaria es GMT +2. Ahora son las 03:56:17.


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