Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿Cómo crear diálogo de Backup? (https://www.clubdelphi.com/foros/showthread.php?t=64140)

radenf 19-03-2009 01:16:13

¿Cómo crear diálogo de Backup?
 
Hola amigos:

Una vez más recurro a su sabiduría y desinteresada ayuda.
Quiero crear un cuadro de diálogo para hacer backup de un archivo (BD Abs que acepta el copiar-pegar).
Para seleccionar el disco de destino utilizo un drivecombobox y para realizar la acción un botón. En este paso se debe crear una carpeta que contenga el archivo a copiar al disco seleccionado.
Para la restauración utilizo una foldercombobox que me permite elegir la carpeta antes creada, luego se debe realizar la acción con un botón, que debe copiar esta carpeta en un directorio conocido.
Una barra de progreso debe indicar la evolución de los procesos.
¿Puede alguien ayudarme con el código? Mi escasa experiencia no me ha permitido desarrollarlo y no he encontrado nada que me ayude.

Saludos y muchas gracias

radenf 22-03-2009 17:33:49

Retomo el hilo para comentar mis aventuras.
He modificado un código que utiliza ShellApi, ya que el método CopyFile no funciona al parecer con archivos .abs, que es el siguiente:

var
Fos : TSHFileOpStruct;
Buf : array[0..4096] of char;
p : pchar;
sDest : string;

procedure TBackup.Button1Click(Sender: TObject);
begin
ABSRegistros.Connected :=False;
FillChar(Buf, sizeof(Buf), #0) ;
p := @buf;
p := StrECopy(p,'C:\Windows\Regsdata\Registros.abs');
sDest := 'e:\';
FillChar(Fos, sizeof(Fos), #0) ;
with Fos do
begin
Wnd := Handle;
wFunc := FO_COPY;
pFrom := @Buf;
pTo := @sDest;
fFlags := 0;
end;
if ((SHFileOperation(Fos) <> 0) or (Fos.fAnyOperationsAborted <> false)) then
Message1.MessageDlg('Error al copiar el archivo',mtWarning, [mbOK], 0);
end;

Con la primera línea desconecto la base de datos.
Luego al ejecutar el código me genera los siguientes errores:
- A pesar que el destino es la Unidad E, copia el archivo Registros.abs en la carpeta del ejecutable.
- Crea un archivo sin extensión cuyo nombre son tres caracteres cualquiera y no el nombre y extensión del archivo.

¿Puede alguien por favor ayudarme a corregir el código ?
¿ Es posible con un edit definir la carpeta de destino ?

De antemano muchas gracias


La franja horaria es GMT +2. Ahora son las 14:01:33.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi