Page 1 of 1

Actualización automatica de programas

Posted: Sun Jun 24, 2018 9:44 am
by pedroluis
Hola Gente !

Tengo un cliente que tiene 5 equipos conectados en red con mi programa en cada uno de ellos, los cuales acceden a las bases de datos
de un servidor.
La red es una red de trabajo de Windows.
Ya que me lleva tiempo actualizar el programa a cada uno de los 5 equipos, quisiera ver si hay alguna manera desde FWH , de hacer una
actualización automática del programa para que cada terminal la pueda descargar sin mi intervención. (como se hace con las actualizaciones automaticas de Windows u otros).
La idea sería que yo ponga mi programa en mi hosting, y que cuando ellos habran el programa y vean que el que está en el hosting
tiene una fecha diferente del programa que tienen, les ofrezca actualizarlo.

Alguien tiene idea de si ésto se puede hacer ?

Muchas gracias !

Re: Actualización automatica de programas

Posted: Sun Jun 24, 2018 11:47 am
by csincuir
Hola Pedro, puedes ver esta opción de Biel
http://bielsys.blogspot.com/2009/04/act ... ca-de.html

Saludos.

Re: Actualización automatica de programas

Posted: Sun Jun 24, 2018 7:34 pm
by stefano
Io uso:

Code: Select all

vers := 0
versione()
if vers = 1
   return(nil)
endif  
 

Code: Select all

function versione()
cFile = cperete+"\ar20.exe"        // file eseguibile server
cfile0 = "ar20.exe"    // client
cfile1 = "ar201.exe"   // copia client

IF FILE(CFILE)
   do case
      case fDate(cfile) > fDate(cfile0)
        DELETEFILE(CFILE1)
        MOVEFILE(CFILE0,CFILE1)
        COPYFILE(CFILE,CFILE0)
        msgInfo(" "+CRLF+"La versione è stata migliorata"+CRLF+" ... aggiornamento in corso" +CRLF+CRLF+"Riavviare il programma"+CRLF+" ","Avviso")  
        vers = 1
    case fDate(cfile) = fDate(cfile0)
       ora := fTime(cfile)
       nora := val(substr(ora,7,2))+val(substr(ora,4,2))*60+val(substr(ora,1,2))*3600
       ora0 := fTime(cfile0)
       nora0 := val(substr(ora0,7,2))+val(substr(ora0,4,2))*60+val(substr(ora0,1,2))*3600
       if nora > nora0
           mesver = 1
           DELETEFILE(CFILE1)
           MOVEFILE(CFILE0,CFILE1)
           COPYFILE(CFILE,CFILE0)
          msgInfo(" "+CRLF+"La versione è stata migliorata"+CRLF+" ... aggiornamento in corso" +CRLF+CRLF+"Riavviare il programma"+CRLF+" ","Avviso") 
          vers = 1   
      endif
    case fDate(cfile) < fDate(cfile0)
      if xmsgyesno("E' presente una versione precedente",," ... ripristino ???",,,"Nota",2)
         DELETEFILE(CFILE1)
         MOVEFILE(CFILE0,CFILE1)
         COPYFILE(CFILE,CFILE0)
        vers = 1
      endif
   endcase
ENDIF  

return (vers)
 
saluti
Stefano

Re: Actualización automatica de programas

Posted: Sun Jun 24, 2018 8:47 pm
by Marc Venken
I do this.

I have a online user database where every User/station has his current version nummer

When I update, I change the master version number in that database, and when a user log's in, the program will see that there is a new version.

The program will then prompt to update, change the version nummer online to the newest and he can start the new program.

Code: Select all

      if oRs:versie <> system_version  // check if his version nummer = new version
        if URLDOWNLOADTOFILE( 0, "http:\\yourprogramlocation/fivewin/program.exe", "test.exe" ) = 0
           oRs:versie = system_version // update his version nummer
           oRs:Save()
//           oRs:Refresh()
           msginfo("Update gevonden")
        endif
      endif

// also needed

DLL FUNCTION URLDOWNLOADTOFILE( pCaller AS LONG, cUrl AS LPSTR, cFileName AS LPSTR, nReserved AS DWORD, nFnCB AS LONG ) AS LONG;
    PASCAL FROM "URLDownloadToFileA" LIB "urlmon.dll"

 

Re: Actualización automatica de programas

Posted: Sun Jun 24, 2018 11:16 pm
by Armando
Pedro:

Me parece que la forma de actualizar que amablemente Biel aportó en su Blog
es funcional ni duda cabe, pero que sucederá cuando haya necesidad de cambiar
la estructura de algunos archivos como parte de la actualización?.

Saludos

Re: Actualización automatica de programas

Posted: Sun Jun 24, 2018 11:25 pm
by russimicro
Mi Aporte

Code: Select all


 LOCAL nVerAct := 3575 // ACTUAL = se incrementa manualmente al compilar ... siempre que existan cambios de estructura..
 LOCAL SW := .T.

   IF SELECT("EMP") == 0
      IF !lUsaTab(cPatSis+"\","EMPRESA.DAT","EMP",{},.T. )
         RETURN
      ENDIF
   ENDIF
   EMP->( DBGOTOP() )
   nVerEmp := EMP->nNroVerEmp
   

   IF nVerEmp <  3575
      CLOSE ALL
      IF !verificaEstructuraTablas(cPatSis,"ESTAELEC.DAT","cValCufEle",NIL,[char(50) NOT NULL DEFAULT ''''] )
         SW := .F.
      ENDIF
   ENDIF

  IF SW

      EMP->( DBGOTOP() )

      IF lRlock("EMP","EMPRESAS",.F.)
         REPLACE EMP->nNroVerEmp WITH nVerAct
      ENDIF

      EMP->( DBCOMMIT() )
      EMP->( DBUNLOCK() )

  ENDIF

Re: Actualización automatica de programas

Posted: Mon Jun 25, 2018 3:46 pm
by Marcelo Via Giglio
Pedro,

si tienes una red local, podría pensar que una de las máquinas contiene tu base de datos centralizada, lo que haría sería tener una máquina como server y desde allí mapear una carpeta compartida a una unidad de red de cada uno de los clientes y jalar la aplicación, de esa manera, solo actualizas la máquina que hace de servidor. Aquí en mi trabajo utilizamos Linux con Samba y alli se centraliza tanto la aplicación, reportes y base de datos, y esta manera ha sido comoda y efectiva.

Saludos

Marcelo Vía

Re: Actualización automatica de programas

Posted: Mon Jun 25, 2018 4:20 pm
by FranciscoA
Armando wrote:Pedro:

...pero que sucederá cuando haya necesidad de cambiar
la estructura de algunos archivos como parte de la actualización?.

Saludos
+1

Re: Actualización automatica de programas

Posted: Mon Jun 25, 2018 4:23 pm
by FranciscoA
Marcelo Via Giglio wrote:Pedro,

si tienes una red local, podría pensar que una de las máquinas contiene tu base de datos centralizada, lo que haría sería tener una máquina como server y desde allí mapear una carpeta compartida a una unidad de red de cada uno de los clientes y jalar la aplicación, de esa manera, solo actualizas la máquina que hace de servidor. Aquí en mi trabajo utilizamos Linux con Samba y alli se centraliza tanto la aplicación, reportes y base de datos, y esta manera ha sido comoda y efectiva.

Saludos

Marcelo Vía
Asi lo hago, desde siempre. Pero cuando se actualizó a Windows 10 (misma version en lodas las maquinas)... ¡Que lentitud!

Re: Actualización automatica de programas

Posted: Tue Jun 26, 2018 5:29 am
by Carles
Hola,
Armando wrote:Pedro:

Me parece que la forma de actualizar que amablemente Biel aportó en su Blog
es funcional ni duda cabe, pero que sucederá cuando haya necesidad de cambiar
la estructura de algunos archivos como parte de la actualización?.

Saludos
Se ha de separar la parte de actualización del software y la de proceso de migración de tablas con nuevas estructuras de una version a otra...