Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Controlar TIBBackupService (https://www.clubdelphi.com/foros/showthread.php?t=90830)

Angel.Matilla 13-09-2016 11:03:06

Controlar TIBBackupService
 
Estoy haciendo la copia de seguridad de una BB.DD. en Firebird con este código:
Código:

Backup->LoginPrompt = false;
Backup->Params->Add("user_name=sysdba");
Backup->Params->Add("password=masterkey");
Backup->Verbose = true;
Backup->Active  = true;

try
{
    Backup->DatabaseName = fPersona->Afiliados->DatabaseName;
    Backup->BackupFile->Add(cInicio + "\\" + Now().FormatString("yyyymmdhhnnss") + ".gbk");
    Query->Transaction->Active = true;
    Query->Transaction->Commit();
    Backup->ServiceStart();

    while (!Backup->Eof)
          cAux = Backup->GetNextLine();
}

__finally
{
    Backup->Active = false;
}

La pregunta tal vez sea una tontería pero: ¿Cómo puedo saber cuantos elementos tienen que copiarse? Lo digo por poner una barra de progreso para que no parezca que el sistema se ha quedado muerto.

Casimiro Noteví 13-09-2016 13:27:32

Código PHP:

Backup->LoginPrompt = false;
Backup->Params->Add("user_name=sysdba");
Backup->Params->Add("password=masterkey");
Backup->Verbose = true;
Backup->Active  = true;

try
{
  
Backup->DatabaseName = fPersona->Afiliados->DatabaseName;
  
Backup->BackupFile->Add(cInicio + "\\" + Now().FormatString("yyyymmdhhnnss") + ".gbk");
  
Query->Transaction->Active = true;    /*   <--  ¿Para qué sirve? */
  
Query->Transaction->Commit();         /*   <--  ¿Para qué sirve? */
  
Backup->ServiceStart();

while (!
Backup->Eof)
  
cAux = Backup->GetNextLine();
  if (
iLin mod 50) application.processmessages;   /*  Estilo delphi :p   */
}

__finally
{
  
Backup->Active = false;
} 

En cAux tienes cada línea, puedes ir mostrándola en un memo, por ejemplo, actualizando cada cierto tiempo.

Angel.Matilla 13-09-2016 18:08:54

Cita:

Empezado por Casimiro Notevi (Mensaje 508714)
Código PHP:

Query->Transaction->Active = true;    /*   <--  ¿Para qué sirve? */
Query->Transaction->Commit();    /*   <--  ¿Para qué sirve? */ 


Pues la verdad se dicha que no sé que pintan ahí esas dos líneas :(
Cita:

Empezado por Casimiro Notevi (Mensaje 508714)
En cAux tienes cada línea, puedes ir mostrándola en un memo, por ejemplo, actualizando cada cierto tiempo.

No se me había ocurrido. Estaba tan obsesionado con un ProgressBar que no pensé en otras posbilidades. Gracias.


La franja horaria es GMT +2. Ahora son las 23:26:57.

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