Ver Mensaje Individual
  #4  
Antiguo 29-08-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 23
guillotmarc Va por buen camino
Hola.

Os envío el código que utilizo.

Código:
var RutaGbak, Params: String;
begin
  RutaGbak := ExtractFilePath(Application.ExeName) + 'Firebird\bin\gBak.exe';
  Params := AnsiQuotedStr(ExtractFilePath(Application.ExeName) + 'BBDD\Datos.gdb', '"');
  Params := Params + ' ' + AnsiQuotedStr(txtArchivo.Text, '"');
  Params := Params + ' -V -USER SYSDBA -PAS masterkey';
  FileExecuteWait(RutaGbak, Params, ExtractFilePath(Application.ExeName), esNormal);
  if not FileExists(txtArchivo.Text) then begin
    ShowMessage('No se ha podido realizar la Copia de Seguridad');
  end;
end;
TxtArchivo es un TextBox donde dejo que el Usuario introduzca la ubicación y nombre del archivo de copia de seguridad. El programa Gbak lo tengo en un subdirectorio de la aplicación, así como la base de datos, en vuestro caso teneis que inicializar las variables RutaGbak y Params con las rutas correspondientes donde teneis el Gbak y la base de datos.

Finalmente, en este caso utilizo la función FileExecuteWait que viene con las RxLib, porqué me es más cómoda que la función ShellExecute. Aunque si no teneis instaladas las RxLib, podeis utilizar perfectamente la función ShellExecute.

NOTA : El Restore es muy similar, solo hay que añadir un -R en los parámetros, y especificar primero el archivo de copia de seguridad y después el de base de datos.

Espero que esta muestra os sea de utilidad.

Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).

Última edición por guillotmarc fecha: 10-09-2003 a las 21:18:23.
Responder Con Cita