Button Backup y Restore Firebird
Buen día compañeros, tengo la siguiente consulta.
Necesito crear en mi formulario un botón llamado "Generar Respaldo" y "Regresar Respaldo" y que hagan dicha función con mi base de datos (En este caso: TEST.FDB), mi base de datos está hecha en Firebird 3.0 ¿Alguien sabe cómo lo puedo implementar en Delphi? He leído varios foros, incluso artículos de este mismo pero cada uno el código que utilizan es muy diferente. Saludos y muchas gracias por su apoyo. |
Puedes realizar el BACKUP y el RESTORE utilizando la utilidad que trae FB y llamándola desde la línea de commandos.
La utilidad es GBAK. El commando de backup será algo similar a eso: Cita:
Cita:
Revisa los link que hay al final de esta página o estos otros, aunque si buscas en los foros encontrarás más: https://www.clubdelphi.com/foros/showthread.php?t=57566 http://www.clubdelphi.com/foros/showthread.php?t=79416 https://www.clubdelphi.com/foros/showthread.php?t=28506 |
Cita:
Gracias por el aporte, solamente me queda una duda, ¿la función gbak se ejecuta en ISQL? Lo ejecuto de la siguiente maneja y arroja error Código:
SQL> gbak -v -t -user SYSDBA -password "masterkey" C:\Users\Paul\Desktop\PROYECTO\TEST.FDB C:\Users\Paul\Desktop\PROYECTO\TEST.FBK; |
GBAK es un programa Win32 o Win64, dependiendeo de la instalación que hayas hecho.
Suele estar en C:\Program Files\Firebird\Firebird_2_5\bin (Version Firebird 2.5 Win32). Para Firebird 3.0 supongo que será C:\Program Files\Firebird\Firebird_3_0\bin Para Firebird 4.0 es C:\Program Files\Firebird\Firebird_4_0\ Por lo tanto la sentencia completa sería Código:
C:>"C:\Program Files\Firebird\Firebird_2_5\bin\gbak.exe" -v -t -user SYSDBA -password masterkey "C:\Users\Paul\Desktop\PROYECTO\TEST.FDB" "C:\Users\Paul\Desktop\PROYECTO\TEST.FBK" |
Cita:
|
Hola.
Cita:
Saludos :) |
Yo lo que agregaría a todo esto es la verificación de que todo haya salido bien.
Notas: 1. Es importante borrar el fichero .log ya que el comando fallará si ya existe. Para evitar posibles errores suelo nombrar el fichero como "resultado_backup_[FECHA_HORA_SIN_SEPARADORES].log" (resultado_backup_20220929_090332.log) 2. Si utilizas la opción "-y", debes verificar que termine que una línea que pone "gbak:finishing, closing, and going home". De lo contrario hubo error. 3. Ten en cuenta que el hacer un backup no garantiza que puedas hacer un restore. Por esto, siempre hago los dos pasos y verifico que no haya errores. |
Otro punto a tener en cuenta durante el restore es no sobreescribir la base de datos original.
El problema es que si falla el restore y estamos sobreescribiendo la base de datos perderemos todo. Por esto suelo seguir estos pasos:
|
Cita:
Gracias por las sugerencias, se aprecian bastante, llevo unas pocas semanas trabajando con Delphi y Firebird y aún estoy practicando. ¿Cuál es la forma correcta de desconectar mi aplicativo de la base de datos para poder hacer un backup y restore? |
Cita:
|
Cita:
|
No hace falta desconectar la BD para hacer un backup.
|
Cita:
|
Cita:
|
Cita:
|
¿Has contestado ya qué componentes estás usando? es que no lo veo.
|
La franja horaria es GMT +2. Ahora son las 00:28:46. |
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