Pregunta: | 1139 - BACKUP DE TABLAS |
Autor: | Laphat Mateews Rodriguez |
Mi problema es el siguiente:
Tengo una aplicacion en Delphi. Deseo poner una opcion en el menu, con la cual el usuario pueda realisar un backup de toda las tablas (Son paradox), sin tener que salir del programa y que la copia pueda se en un Driver cualquiera. Como puedo hacerlo, que componete, etc. Lo es intentado con el FileListBox... Mucha Gracias. |
Respuesta: | Joe Solari |
1.-Si cuando dices 'Driver' te refieres a la unidad a:\ o c:\ lo mas facil y menos pesado para el proceso es que barras la(s) tabla(s) que deseas salvar y las guardescomo texto puro (.txt) con algún separador.
Ejem:(|dato1|dato2|dato3|dato4|....|datoN|) el separador es '|' Después de esto, puedes compactar el archivo resultante con lo que ocuparias menos espacio. 2.-Si quieres algo menos rústico guárdalo con formato XML. 3.-Si cuando dices 'driver' te refieres a que quieres guardad la tabla de Paradox en Access o paradox a SQL Server la cosa ya es mas laboriosa que lo anterior. Para todos los casos tengo ejemplos... ¿Cuál es tu caso y adonde te envio los ejemplos...? |
Respuesta: | juan carlos gonzale |
de esta forma yo he podido copiar las tablas del disco duro al drive a: esto no comprime las tablas solo las pasa tal cual como se encuentran en una ruta especifica. tiene dos limitantes 1) solo puede guardar una tabla con tanta informacion como pueda albergar un disco de 3.5 o similar 2) no copia todas las tablas a la vez se debe hacer de a una. en una forma coloca los siguientes componenetes: 2tdatasource 2ttable y unelos con la propiedad dataset 1 tbatchmove (se encuentra en dataacces) y colocale las propiedades : mode=batcopy destination=table2 source=table1 y el siguiente codigo procedure TForm1.Button1Click(Sender: TObject); var x:integer; begin try if messagedlg(´Inserte un disco formateado en el drive A: ´+chr(13)+´ ¿ iniciar la copia ? ´, mtConfirmation, [mbYes, mbNo], 0) = mrYes then begin x:=(disksize(1)div 1024); if x=0 then begin showmessage(´ Error´+chr(13)+´ el dispositivo no esta disponible´+chr(13)+´asegurese de haber insertado el disco corectamente´); end else begin table1.TableName :=´d:\compilados\driver.db´; table2.TableName :=´a:\´+ extractfilename(´driver.db´); batchmove1.Execute; end; end; except showmessage(´disco protegido contra escritura´); end; end; procedure TForm1.Button2Click(Sender: TObject); begin Ð/LM/W3SVC/116/Root |
Respuesta: | Federico Gordillo |
Podes usar los componentes TDriveComboBox y TDirectoryListBox para seleccionar el destino del Backup. Yo, por el momento no se como comprimir con delphi, por eso para hacer un backup utilizo el comando "WINEXEC" para ejecutar algun programa para comprimir(ej: winrar95, WinZip) y pasarle los parametros necesarios para que el usuario no tenga que hacer nada. Pero para hacer un backup tenes que asegurarte que ninguna tabla tenga la propiedad active igual a True. Espero poder haberte ayudado, cualquier duda enviame un mail. |