Realizar Backup o copias de Seguridad desde FW

Realizar Backup o copias de Seguridad desde FW

Postby dobfivewin » Sun Nov 23, 2008 9:17 am

Estimados...

Que rutinas hay para generar backup ZIP,
Estoy tratando de usar HB_ZipFile y no me funciona, conseguí la Libreria y no me dá ningun error de compilación ni de ejecución, pero NO me generar nada.
Que otras opciones con FW tengo?

muchas gracias

david
argentina
dobfivewin
 
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Postby Carlos Mora » Sun Nov 23, 2008 9:49 am

David,

hb-zip funciona bastante bien. Porque no subís el código que te falla, algún ejemplo, y seguro encontramos que estás haciendo mal.

Un saludo
Carlos Mora
 
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Realizar Backup o copias de Seguridad desde FW

Postby Manuel Valdenebro » Sun Nov 23, 2008 10:22 am

dobfivewin wrote:Que otras opciones con FW tengo?


Aunque estoy de acuerdo con Carlos Mora (yo personalmente uso la utilidad del propio xHarbour), tienes otra opción gratuita que funciona bastante bien: EASYBACKUP. La puedes obtener en www.reportdesigner.info

Es facilmente configurable.
Un saludo

Manuel
User avatar
Manuel Valdenebro
 
Posts: 706
Joined: Thu Oct 06, 2005 9:57 pm
Location: Málaga-España

Postby Johnson » Sun Nov 23, 2008 9:44 pm

dobfivewin.
copiar & colar
User avatar
Johnson
 
Posts: 18
Joined: Sat Nov 26, 2005 4:45 pm
Location: Brasil

Re: Realizar Backup o copias de Seguridad desde FW

Postby FiveWiDi » Sun Nov 23, 2008 10:16 pm

dobfivewin wrote:Estimados...

Que rutinas hay para generar backup ZIP,
Estoy tratando de usar HB_ZipFile y no me funciona, conseguí la Libreria y no me dá ningun error de compilación ni de ejecución, pero NO me generar nada.
Que otras opciones con FW tengo?

muchas gracias

david
argentina


Siempre estoy viendo por todos lados ZIP, ZIP, ZIP, ....

Que se gana con usar ZIP (aparte de ahorrar espacio y dejar un solo fichero)? Que ventajas me proporciona?

Un familiar mio tiene la puñetera manía de usar ZIP (o el compresor que esté de moda). Yo sigo con el COPY. Y la verdad, NUNCA he estado preocupado en como lo voy a recuperar si se da el caso.
Sé que en cualquier PC podré recuperar la copia (DOS y Windows claro).

Y por cierto, nunca falla, y es compatible con las versiones anteriores, de unos ..... 20 años atras quizás.

En fin no puedo ayudarte, debo ser un bicho raro.

Saludos
Carlos G.
FiveWiDi
 
Posts: 1060
Joined: Mon Oct 10, 2005 2:38 pm

Postby Alfredo Arteaga » Mon Nov 24, 2008 12:49 am

He incorporado un paso para que mis clientes puedan comprimir la información y me la envíen por correo, para casos de soporte.

Uso esto:

Code: Select all  Expand view
   // Comprimir archivos (en ZIP)

   aFiles:=Array(ADir(cPath+"*.DBF"))
   nFiles:=aDir(cPath+"*.DBF",aFiles)
   FOR nI=1 TO nFiles
      cDbf:=cPath+aFiles[nI]
      AAdd(aZip,cDbf)
      CursorWait()
   NEXT nI

   FOR nI=1 TO Len(aZip)
      CursorWait()
      HB_ZipFile(cFile,aZip[nI],,,,,.F.)
   NEXT nI

   // Extraer archivos

   aFiles:=HB_GetFilesInZip(cFile)
   HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)


A ellos tambien les resulta muy útil, toda vez que sus propios clientes puedes estar a cientos o miles de kilómetros de distancia y el envio de este tipo de archivos resulta eficiente.
User avatar
Alfredo Arteaga
 
Posts: 326
Joined: Sun Oct 09, 2005 5:22 pm
Location: Mexico

Postby dobfivewin » Mon Nov 24, 2008 9:19 am

Estimados

Muchas gracias por su respuesta...

Alfredo tome tu ejemplo y solucioné en parte. En cuando al armado del ZIP andubo perfecto.

Pero la extracción no tuve suerte


Code: Select all  Expand view
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)


la consulta que coloco en: cFile,cPath

Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?

nuevamente gracias

Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual

david
argentina
dobfivewin
 
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Postby jose_murugosa » Mon Nov 24, 2008 10:37 am

Lo mejor que he visto en backup con fivewin y hbzip es xBLite

Un sistema de respaldo de directorios y subdirectorios seleccionados facilmente y permite restaurar también los datos.

Francamente, no se quien lo desarrolló originalmente... pero es gratuito y open source (los fuentes están completos)

Originalmente se desarrolló utilizando como browse SuperBrowse de Manuel Mercado, y mi buen amigo WMormar lo paso a xBrowse, para los que así lo prefieran.

Lo pueden hallar en:

xBLite Versión para SuperBrowse (M. Mercado)
http://www.box.net/shared/zovhrcoz3f

xBLite Versión modificada por WMormar para xBrowse
http://www.box.net/shared/v4ijq2olgq

Espero que les sean útiles y desde aquí mi gratitud a quienes participaron en el desarrollo de ambas versiones.
Saludos/Regards,
José Murugosa
FWH + Harbour + Bcc7. Una seda!
User avatar
jose_murugosa
 
Posts: 1144
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay

Postby carlos vargas » Mon Nov 24, 2008 3:25 pm

los desarrolladores originales de xBackupLite

Kleyber y un servidor, y ademas hay una version mejorada por karihna.

:-)

un saludo a aquellos que usan xBackupLite, el cual fue un aporte para todos mas que nada para demostrar el poder de fivewin y harbour.

salu2
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1683
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Postby karinha » Mon Nov 24, 2008 4:04 pm

carlos vargas wrote:los desarrolladores originales de xBackupLite

Kleyber y un servidor, y ademas hay una version mejorada por karihna.

:-)

un saludo a aquellos que usan xBackupLite, el cual fue un aporte para todos mas que nada para demostrar el poder de fivewin y harbour.

salu2


Disponible en:

http://www.fivewin.com.br/exibedicas.asp?id=822

un gran saludo a mi querido amigo Carlos Vargas.

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Postby Kleyber » Mon Nov 24, 2008 5:10 pm

carlos vargas wrote:Kleyber y un servidor...
llamado Carlos Vargas.

Saludos,
Kleyber Derick

FWH / xHb / xDevStudio / SQLLIB
User avatar
Kleyber
 
Posts: 581
Joined: Tue Oct 11, 2005 11:28 am
Location: São Luiz, Brasil

Postby dobfivewin » Tue Nov 25, 2008 7:36 am

Muchas gracias por vuestras respuestas

instalé y probé xBLite y me parece MUY BUENO opción :D .

Ahora estoy tratando de incorporar algo más simple y automático para que el usuario no tenga que hacer mucho....

es por eso que necesito saber:

Para la la extracción
Código:
Code: Select all  Expand view
aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)


la consulta que coloco en: cFile,cPath

Entiendo que cFile es el lugar donde se encuentra el ZIP y cPath es donde tengo que colocar la extracción de archivos ?

Ya que estamos... como es la funcion para que me de la carpeta de ubicacion actual
dobfivewin
 
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Postby dobfivewin » Wed Nov 26, 2008 4:29 pm

Estimados

Gracias a Alfredo Arteaga logre hacer funcionar el armado de backup en ZIP

les dejo lo armado a modo de ejemplo...

Code: Select all  Expand view
#include 'dob.ini'

static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO

Function BackupZIP()

local oDlgCar
local lSalir:= .f.
local oFont1

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-15 BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 12, 80 ;
              TITLE 'BACKUP de INFORMACION'

 
   @ 1, 8 BUTTON 'Armar Backup'  OF oDlgCar SIZE 50, 12 ;
                    ACTION ( ArmarBackup(1) )


   @ 2, 8 BUTTON 'Traer Backup'  OF oDlgCar SIZE 50, 12 ;
                    ACTION ( ArmarBackup(2) )


   @ 3, 8 BUTTON 'Salir' OF oDlgCar SIZE 50, 12 ;
                  ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------------------------
Function ArmarBackup(Arma1Extrae2)

local oDlgCar
local lSalir:= .f.
local oFont1

local oUBI_ORI , oUBI_DES
local xUBI_ORI:=CurDrive()+":\"+CurDir()+"\"

mUBI_ORI:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mUBI_DES:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mNOMARCHIVO:=SPACE(20)

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-9 //BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 15, 80 ;
              TITLE If(Arma1Extrae2==1,'ARMA','EXTRAE`')+' BACKUP de INFORMACION'

   @ 1.750, 1 SAY 'Carpeta de Origen' of oDlgCar

   @ 1.500,10 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_ORI:=DIRECMain() ,;
                             mUBI_ORI:=alltrim(mUBI_ORI)+'' ,;
                             mUBI_ORI:=mUBI_ORI+space(60-len(mUBI_ORI)) ,;
                             oUBI_ORI:refresh() )

   @     2,10 GET oUBI_ORI var mUBI_ORI of oDlgCar


   @ 2.625, 1 SAY 'Carpeta de Destino' of oDlgCar

   @ 2.300,10 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_DES:=DIRECMain() ,;
                             mUBI_DES:=alltrim(mUBI_DES)+'' ,;
                             mUBI_DES:=mUBI_DES+space(60-len(mUBI_DES)) ,;
                             oUBI_DES:refresh() )

   @     3,10 GET oUBI_DES var mUBI_DES of oDlgCar

   @ 3.500, 1 SAY 'Nombre de Archivo ZIP' of oDlgCar

   @     4,10 GET mNOMARCHIVO of oDlgCar

   If Arma1Extrae2 == 1

     @ 4, 10 BUTTON 'Generar Backup'  OF oDlgCar SIZE 50, 12 ;
                       ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
                               oDlgCar:End() )
   Else

     @ 4, 10 BUTTON 'Extraer Backup'  OF oDlgCar SIZE 50, 12 ;
                       ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
                               oDlgCar:End() )
   EndIf


   @ 4, 20 BUTTON 'Salir' OF oDlgCar SIZE 50, 12 ;
                  ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------
Function Backup1(cFile,cPath,mUBI_DES,cPass)

local aFiles , nI , aZip:={} , nFiles , cDbf

If FILE(mUBI_DES+cFile+'.zip') .and. !MsgNoYes(oemtoansi('Archivo Existente, desea Reemplezar ?'),;
                                oemtoansi('Elija opcion SI/NO') )
  return .t.

EndIf
If FILE(cFile+'.zip')
  FErase(cFile+'.zip')
EndIf

aFiles:=Array(ADir(cPath+"*.DBF"))
nFiles:=aDir(cPath+"*.DBF",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

aFiles:=Array(ADir(cPath+"*.DBT"))
nFiles:=aDir(cPath+"*.DBT",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

aFiles:=Array(ADir(cPath+"*.FTP"))
nFiles:=aDir(cPath+"*.FTP",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

FOR nI=1 TO Len(aZip)
   CursorWait()
   HB_ZipFile(mUBI_DES+cFile,aZip[nI],,,,,.F.)   
NEXT nI

MsgInfo('Carpeta de Origen: '+cPath+chr(13)+;
        'Carpeta de Destino: '+mUBI_DES+chr(13)+;
        'Archivo ZIP: '+cFile+chr(13)+;
        'Cantidad de Archivo Guardados: '+str(Len(aZip),3) ,'Información General')

return .t.

*-----------------------------------------------------------
Function Backup2(cPath,mUBI_ORI,cFile)

local aFiles

If !FILE(cFile+'.zip')
  MsgInfo('Archivo Inexistente','Archivo Inexistente')
  return .t.

EndIf

   aFiles:=HB_GetFilesInZip(cFile)
   HB_UnZipFile(mUBI_ORI+cFile,,.T.,,cPath,aFiles,NIL)

return .t.


Para empezar a hacer mejoras:
1) Como puedo incluir una barra de proceso en el armado del ZIP, como verán en la variable (Array) aZip tengo los archivos que van a ser incluido en el backup

2) para descomprimir un archivo, como puedo hacer para que el usuario pueda seleccionar un archivo

desde ya muchas gracias

david
argentina
dobfivewin
 
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Postby dobfivewin » Thu Nov 27, 2008 9:11 am

Actualizo mi simple programa de Guarda/Recuperar Informacion :) :

Para Mejorar:
Como puedo implementarle una barra de estado del proceso cuando valla armado o recuperando la Informacion (Meter?) :oops:


Code: Select all  Expand view
#include 'dob.ini'

static mUBI_ORI
static mUBI_DES
static mNOMARCHIVO

Function BackupZIP()

local oDlgCar
local lSalir:= .f.
local oFont1

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-15 BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 12, 40 ;
              TITLE 'GUARDAR / RECUPERAR INFORMACION'

 
   @ 1, 8 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 12 ;
                    ACTION ( ArmarBackup(1) )


   @ 2, 8 BUTTON 'Recuperar Informacion'  OF oDlgCar SIZE 60, 12 ;
                    ACTION ( ArmarBackup(2) )

 
   @ 3, 8 BUTTON 'Salir' OF oDlgCar SIZE 60, 12 ;
                  ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------------------------
Function ArmarBackup(Arma1Extrae2)

local oDlgCar
local lSalir:= .f.
local oFont1

local oUBI_ORI , oUBI_DES
local xUBI_ORI:=CurDrive()+":\"+CurDir()+"\"

mUBI_ORI:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mUBI_DES:=xUBI_ORI+SPACE(60-LEN(xUBI_ORI))
mNOMARCHIVO:=SPACE(20)

dbcloseall()

DEFINE FONT oFont1 NAME 'Arial' SIZE 0,-9 //BOLD

DEFINE DIALOG oDlgCar FROM 0, 0 TO 15, 80 ;
              TITLE If(Arma1Extrae2==1,'GUARDAR','EXTRAER')+' INFORMACION'

   @ 1.750, 1 SAY 'Carpeta de Origen' of oDlgCar

   @ 1.500, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_ORI:=DIRECMain() ,;
                             mUBI_ORI:=alltrim(mUBI_ORI)+'' ,;
                             mUBI_ORI:=mUBI_ORI+space(60-len(mUBI_ORI)) ,;
                             oUBI_ORI:refresh() )

   @     2,10 GET oUBI_ORI var mUBI_ORI of oDlgCar


   @ 2.625, 1 SAY 'Carpeta de Destino' of oDlgCar

   @ 2.250, 9 BUTTON 'Buscar' OF oDlgCar  SIZE 20, 10 Font oFont1 ;
                     ACTION( mUBI_DES:=DIRECMain() ,;
                             mUBI_DES:=alltrim(mUBI_DES)+'' ,;
                             mUBI_DES:=mUBI_DES+space(60-len(mUBI_DES)) ,;
                             oUBI_DES:refresh() )

   @     3,10 GET oUBI_DES var mUBI_DES of oDlgCar

   If Arma1Extrae2 == 1

     @ 3.500, 1 SAY 'Nombre de Archivo ZIP' of oDlgCar
     @     4,10 GET mNOMARCHIVO of oDlgCar


     @ 4, 10 BUTTON 'Guardar Informacion'  OF oDlgCar SIZE 60, 12 ;
                       ACTION ( Backup1(alltrim(mNOMARCHIVO),alltrim(mUBI_ORI),alltrim(mUBI_DES)) ,;
                               oDlgCar:End() )
   Else

     @ 4, 10 BUTTON 'Extraer Informacion'  OF oDlgCar SIZE 60, 12 ;
                       ACTION ( Backup2(alltrim(mUBI_DES),alltrim(mUBI_ORI),alltrim(mNOMARCHIVO)) ,;
                               oDlgCar:End() )
   EndIf


   @ 4, 30 BUTTON 'Salir' OF oDlgCar SIZE 60, 12 ;
                  ACTION ( oDlgCar:End() )

ACTIVATE DIALOG oDlgCar CENTERED

dbcloseall()
return .t.

*-----------------------------------------------------------  GUARDAR INFORMACION
Function Backup1(cFile,cPath,mUBI_DES,cPass)

local aFiles , nI , aZip:={} , nFiles , cDbf
local oMeter2 , nRow:=1



                     
If FILE(mUBI_DES+cFile+'.zip') .and. !MsgNoYes(oemtoansi('Archivo Existente, desea Reemplezar ?'),;
                                oemtoansi('Elija opcion SI/NO') )
  return .t.

EndIf
If FILE(cFile+'.zip')
  FErase(cFile+'.zip')
EndIf

aFiles:=Array(ADir(cPath+"*.DBF"))
nFiles:=aDir(cPath+"*.DBF",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

aFiles:=Array(ADir(cPath+"*.DBT"))
nFiles:=aDir(cPath+"*.DBT",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

aFiles:=Array(ADir(cPath+"*.FTP"))
nFiles:=aDir(cPath+"*.FTP",aFiles)
FOR nI=1 TO nFiles
   cDbf:=cPath+aFiles[nI]
   AAdd(aZip,cDbf)
   CursorWait()
NEXT nI

FOR nI=1 TO Len(aZip)
   CursorWait()
   HB_ZipFile(mUBI_DES+cFile,aZip[nI],,,,,.F.)   
NEXT nI

MsgInfo('Carpeta de Origen: '+cPath+chr(13)+;
        'Carpeta de Destino: '+mUBI_DES+chr(13)+;
        'Archivo/s Guardados en: '+cFile+chr(13)+;
        'Cantidad de Archivos Guardados: '+str(Len(aZip),3) ,'Información General del Proceso')

return .t.

*----------------------------------------------------------- RECUPERAR INFORMACION
Function Backup2(cPath,mUBI_ORI)

local aFiles
local cFile

cFile:= cGetFile32( "ZIP  (*.zip)| *.zip|"  +;                   
                     "Seleccione un archivo de ZIP",3)

msginfo(cFile)

aFiles:=HB_GetFilesInZip(cFile)
HB_UnZipFile(cFile,,.T.,,cPath,aFiles,NIL)

MsgInfo('Carpeta de Origen: '+mUBI_ORI+chr(13)+;
        'Carpeta de Destino: '+cPath+chr(13)+;
        'Archivo/s Recuperados de: '+cFile+chr(13)+;
        'Cantidad de Archivos Recuperados: '+str(Len(aFiles),3) ,'Información General del Proceso')

return .t.
dobfivewin
 
Posts: 325
Joined: Sun Feb 03, 2008 11:04 pm
Location: Argetnina

Postby karinha » Thu Nov 27, 2008 10:57 am

no se puede probar, falta:

#include 'dob.ini' //??

mUBI_ORI:=DIRECMain() //???

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7214
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 94 guests