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
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...