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 Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
ecfisa, he probado el código pero no va, lo único que he cambiado son las constantes y que lo ejecuto en un boton, te pongo el código por si ves, que he cometido algún error.

Código Delphi [-]
procedure TForm1.SpeedButton4Click(Sender: TObject);
const
   PATH_BACKUP = 'C:\TEBICA PROGRAMA\SEG BD\';
   FILE_BACKUP = 'C:\TEBICA PROGRAMA\BD\TEBICA.FDB';
var
  lpOperation, lpFile, lpParameters, lpDirectory: PChar;
  Nombre: string;
begin
//   Componer nombre de archivo (yyyymmdd.fbk)
  Nombre:= StringOfChar('0',4-Length(IntToStr(YearOf(Now))))+IntToStr(YearOf(Now)) +
    StringOfChar('0',2-Length(IntToStr(MonthOf(Now))))+IntToStr(MonthOf(Now)) +
    StringOfChar('0',2-Length(IntToStr(DayOf(Now))))+IntToStr(DayOf(Now))+ '.FBK';
  if not FileExists(Edit4.Text + Edit5.Text) then
    with TPanel.Create(nil) do
    try
      Caption:= 'Realizando copia de seguridad, aguarde un momento por favor...';
      Font.Size:= 14;
      Font.Name:= 'Arial';
      Width:= 600;
      Height:= 70;
      Left:= (Self.ClientWidth - Width) div 2;
      Top:= (Self.ClientHeight - Height) div 2;
      BevelInner:= bvNone;
      BevelOuter:= bvNone;
      BevelWidth:= 1;
      BorderStyle:= bsSingle;
      Ctl3D:= False;
      Parent:= Self;

      lpOperation:= 'open';
      lpFile:= 'gbak.exe';
//      lpParameters:= PChar('-v -t -user SYSDBA -password "masterkey" '+Edit3.Text + Edit4.Text + Edit5.Text);
      lpParameters:= PChar('-v -t -user SYSDBA -password "masterkey" '+ FILE_BACKUP + PATH_BACKUP + Nombre);
      lpDirectory:= PChar(GetEnvironmentVariable('ProgramFiles')+'\Firebird\Firebird_2_5\bin');
      ShellExecute(Handle, lpOperation, lpFile, lpParameters, lpDirectory, SW_HIDE);
    finally
      Free;
    end;
end;

Mi firebirrd es 2_5 y esta activo (Run) como un servicio y el (Start) en automático,por si te sirve de ayuda.
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
  #2  
Antiguo 03-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola José Luís.

Ahora voy a probar el código con el agregado de los Edits. Pero así, a vista de pájaro, pareciera que te falto un espacio al finalizar la constante FILE_BACKUP.

En un rato te pongo el resultado que obtuve.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 03-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola de nuevo José.

De este modo me funciona correcto:
Código Delphi [-]
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
  lpOperation, lpFile, lpParameters, lpDirectory: PChar;
begin
  if not FileExists(EditTargetName.Text) then
    with TPanel.Create(nil) do
    try
      Caption:= 'Realizando copia de seguridad, aguarde un momento por favor...';
      Font.Size:= 14;
      Font.Name:= 'Arial';
      Width:= 600;
      Height:= 70;
      Left:= (Self.ClientWidth - Width) div 2;
      Top:= (Self.ClientHeight - Height) div 2;
      BevelInner:= bvNone;
      BevelOuter:= bvNone;
      BevelWidth:= 1;
      BorderStyle:= bsSingle;
      Ctl3D:= False;
      Parent:= Self;

      lpOperation:= 'open';
      lpFile:= 'gbak.exe';
      EditPathAndBDName.Text:= EditPathAndBDName.Text + ' ';
      lpParameters:= PChar('-v -t -user SYSDBA -password "masterkey" ' +
        EditPathAndBDName.Text + EditTargetPath.Text + EditTargetName.Text);
      lpDirectory:= PChar(GetEnvironmentVariable('ProgramFiles')+'\Firebird\Firebird_2_5\bin');
      ShellExecute(Handle, lpOperation, lpFile, lpParameters, lpDirectory, SW_HIDE);
    finally
      Free;
    end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 04-07-2012 a las 01:48:05.
Responder Con Cita
  #4  
Antiguo 04-07-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Hola: Entro solamente para agradecer a Jose Luis por la pregunta y al maestro ecfisa por la respuesta. Hace ya un tiempo que sabia que en algún momento iba a necesitar hacer un backup de firebird pero mientras estaba en desarrollo la aplicación general como que lo veia medio lejos o para no preocuparme (Creo recordar que hace menos de un año arranque con firebird lo que conlleva a aprender Sql, etc, etc y hacer un backup era lo siguiente en la lista). Tambien vi que el tema es mas o menos recurrente y seguramente yo iba a poner la pregunta exacta que hizo Jose Luis. (Simple, cortito y al pie ) un clik en un botón, el backup arranca y listo (Aunque todavia no lo probe pero seguramente va a funcionar).
No me quiero olvidar de Casimiro que aporta un programa donde él lo nombra como "programita" pero siempre que me propuse intentar interpretarlo me agarra un mareo y lo dejo (son demasiadas opciones del "programita" por lo que pagan ).-

Bueno, nada mas que eso y muchas gracias.-

Saludos
Responder Con Cita
  #5  
Antiguo 04-07-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Martin.

Con solo comparar el código del "programita" de Casimiro con el mío queda bién claro que el maestro no soy yo...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #6  
Antiguo 04-07-2012
MartinS MartinS is offline
Miembro
NULL
 
Registrado: nov 2011
Ubicación: Villa Cacique - Argentina
Posts: 283
Poder: 13
MartinS Va por buen camino
Entonces resumis muy bien. .
Saludos
Responder Con Cita
  #7  
Antiguo 04-07-2012
Avatar de José Luis Garcí
[José Luis Garcí] José Luis Garcí is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Las Palmas de G.C.
Posts: 1.372
Poder: 23
José Luis Garcí Va camino a la fama
Hola compañeros, descubri el problema que tenia, resulta que si las rutas de orige o destino tiene espacios en blanco, debe ir entre comillas dobles. el código queda de la siguiente manera

Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  lpOperation, lpFile, lpParameters, lpDirectory: PChar;
  varbPasado:Boolean;
begin
  varbPasado:=False;
  if not FileExists(Edit3.Text+'.FBK') then
    with TPanel.Create(nil) do
    try
      Caption:= 'Realizando copia de seguridad, aguarde un momento por favor...';
      Font.Size:= 14;
      Font.Name:= 'Arial';
      Width:= 600;
      Height:= 70;
      Left:= (Self.ClientWidth - Width) div 2;
      Top:= (Self.ClientHeight - Height) div 2;
      BevelInner:= bvNone;
      BevelOuter:= bvNone;
      BevelWidth:= 1;
      BorderStyle:= bsSingle;
      Ctl3D:= False;
      Parent:= Self;

      lpOperation:= 'open';
      lpFile:= 'gbak.exe';
      Edit1.Text:= '"'+Edit1.Text + '" ';
      lpParameters:= PChar('-v -t -user SYSDBA -password "masterkey" '+
        Edit1.Text +'"'+Edit2.Text+'"');
      lpDirectory:= PChar(GetEnvironmentVariable('ProgramFiles')+'\Firebird\Firebird_2_1\bin');
      Memo1.Lines.Clear;
      Memo1.Lines.Add(lpParameters);
      ShellExecute(Handle, lpOperation, lpFile, lpParameters, lpDirectory, SW_HIDE);
      varbPasado:=true
    finally
      if varbPasado=true then ShowMessage('Proceso terminado')
                         else ShowMessage('El fichero ya existe');
      Free;
    end;
end;

Ahora abusando un poco, es logico que pase según mis pruebade de 125 Mb a 8.90 y de 3.40 Mb a 28.5K
y por último cual seria la sentencia correcta para una restauración.

Muchas gracias por ser siempre tan atento ecfisa
__________________
Un saludo desde Canarias, "El abuelo Cebolleta"
Responder Con Cita
Respuesta



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
Usar archivos ayuda en mi aplicacion? Alejo15x Varios 4 14-05-2010 08:42:16
Cómo cerrar otra aplicacion desde mi aplicacion en Delphi 7 Gaby123 API de Windows 5 04-01-2007 22:44:51
Usar una aplicación externa desde Delphi erika.martinez Varios 9 14-04-2005 18:10:22
Puedo usar en una aplicacion CLX el Fastreport3 ctronx Impresión 1 08-11-2004 17:59:56
gbak jaime cotino Varios 1 21-06-2004 10:48:29


La franja horaria es GMT +2. Ahora son las 17:22:53.


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