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 Notevi 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 50application.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 22:02:42.

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