![]() |
Guardar y restaurar mi base de datos. Ayuda!
Hola, tengo un proyecto de gestion realizado en turbo delphi,para empezar decir que no tengo mucha idea de como usar delphi, y tengo que hacer/restaurar la copia de seguridad de la base de datos de mi proyecto.
Tengo un menu de inicio, en el cual tengo el menu desplegable de copia de seguridad, dentro de este menu tengo "Hacer" y "Restaurar", al hacer click en "Hacer" necesito que me guarde lo que tengo en mi archivo .gdb en un archivo seleccionado manualmente. Por el contrario, al hacer click en "Restaurar" quiero carga en mi archivo .gdb lo que tenga en un archivo seleccionado manualmete. Os rogaria que me hechaseis una mano. Un saludo. |
Hola bienvenido al ClubDelphi!
Antes que nada, échale un vistazo a la Guía de Estilo y verás que tú pregunto no debe ir en este foro, sino mejor en el de Bases de datos. Tambien puedes usar el buscador antes de postear por si este tema ya se ha tratado otras veces. En cuanto a tu pregunta, tienes varias opciones: 1 - Copiar el fichero de la base de datos (.gdb) de la ruta de origen a la de destino. Para ello debes asegurarte de que no haya ninguna conexión abierta o activa sobre esa base de datos. Así que de primeras los componentes IbDatabase, IbTable, IbQuery, etc que tengas para conectarte, deben estar con la propiedad Active := False y/o (según el componente) connected := False o usar el método Close para cerrar las conexiones de cada uno. Una vez desconectado, puedes usar las funciones CopyFile (unit Windows) o tambien MoveFile y MovoFileEx (tambien en la unit windows). Ejemplo:
2 - Usando los componentes de backup-restore que existen por ahí y que dudo que vengan en TurboDelphi, ya que lo desconozco por completo (aun no lo he instalado) Saludos |
Muchas gracias por la ayuda, no estoy seguro de haberlo entendido todo, pero voy a hecharle un ojo a ver que sale, si tengo alguna duda la posteo en el tema de base de datos.
|
Cita:
Y ¿Cual es la herramienta con la cual hago que salga una barra de progreso?, ya que al ejecutarse el copyfile no hace nada visual. Es simplemente para hacer notar que se ha guardado el archivo. |
Hola
Cita:
Y si quieres usar un cuadro de dialogo usa de la pestaña dialogs (de componentes) el componente SaveDialog y coges la propiedad SaveDialog1.FileName como parametro de destino para el fichero. Espero te sirva. Saludos |
Cita:
SaveDialogCopiaSeguridad.Execute; copyfile('gpsM10-A.gdb', SaveDialogCopiaSeguridad.FileName , False); y ahora me da un fallo de imcompatibilidad de tipos, especificando: [Pascal Error] UnitPrincipal.pas(90): E2010 Incompatible types: 'TFileName' and 'PAnsiChar', supongo que sera una tonteria, te agradeceria que me lo solucionases, gracias. Lo de la barra de progreso aun no lo he podido mirar, pero ya le hechare un ojo. |
Cita:
SaveDialogCopiaSeguridad.Execute; copyfile('gpsM10-A.gdb', SaveDialogCopiaSeguridad.FileName , False); y ahora me da un fallo de imcompatibilidad de tipos, especificando: [Pascal Error] UnitPrincipal.pas(90): E2010 Incompatible types: 'TFileName' and 'PAnsiChar', supongo que sera una tonteria, te agradeceria que me lo solucionases, gracias. Lo de la barra de progreso aun no lo he podido mirar, pero ya le hechare un ojo. |
Hola, prueba con lo que te he puesto en rojo.
Simplemente es hacer un TypeCast Cita:
|
eyyyyyy ya tengo casi terminada mi aplicacion, ya tengo hecha la barra de progreso, lo unico que falla ahora es que el copyfile solo copia archivos que esten en el mismo directorio del programa, sera por el comando:
copyfile('gpsM10-A.gdb', PChar(SaveDialogHacerCopia.FileName) , False); en el SaveDialog tienes que seleccionar un archivo que este en la misma carpeta que donde esta el gpsM10-A.gdb sino no hace nada, pero bueno algo es algo :D. |
Cita:
Los dos parámetros: origen y destino, deben contener la ruta completa de sus correspondientes ficheros: Con el SaveDialog.Filename tienes la ruta completa de destino. Con el origen, debes indicarle la ruta completa: C:\MiCarpeta\MiBD.gdb Saludos |
Hacer Backup
No necesito cerrar nada, me funciona bien lo siguiente en tiempo de ejecución. Delphi 5, Interbase.
|
Backup/Restore zipeados con Password y comentarios
Si me decis como?. Te puedo pasar un ejemplo de como zipear la base a respaldar y como restaurar dicha base, todo en un solo form, funciona en Delphi 7, pero me imagino en otras versiones también. Salu2
|
La franja horaria es GMT +2. Ahora son las 07:31:12. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi