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.