Newsgroup: it.comp.appl.access
Titolo: Come distinguere versioni diverse dello stesso programma?

Finora per aggiornare una stessa procedura ho sempre creato degli 
mde/accdb con nome file diverso ad esempio pippo_1.mde  e pippo_2.mde
Il sistema richiede pero' un 'avviatore' che vada a vedere la versione 
attuale e la lanci in esecuzione
Vorrei esplorare la possibilita' di eliminare "l'avviatore" e fare tutto 
dal codice programma principale
La domanda e': c'e' modo, da codice vba, di distinguere versioni diverse 
dello stesso programma mantenendo lo stesso nome file (ad esempio 
pippo.mde) ?


personalmente salvo la versione del programma in una tabella parametri.
ad ogni avvio il programma cerca sul mio sito una versione aggiornata, 
se la rileva, la scarica in automatico e la autoinstalla aggiornando 
quel valore di cui parlavo prima. Una sorta di live update.
Per capire se quella sul web è più aggiornata carico sul sito oltre al 
exe di installazione anche un txt che contiene sulla prima riga la 
versione e sulle successive la descrizione dell'aggiornamento.
Il programma installato confronta la versione installata con la prima 
riga del txt, se uguali non fa nulla, se diverso notifica al utente 
l'aggiornamento mostrando in una form anche il contenuto 
dell'aggiornamento prelevato dal txt. Se si da ok con installarlo, exe 
viene prelevato ed installato.
In fase di installazione viene fatta una copia del mde "vecchio" in una 
cartella "versione precedente" per rendere reversibile l'aggiornamento 
in caso di problemi.
Ad installazione conclusa una mail automatica mi notifica che il cliente 
ha aggiornato il programma.
 
per creare l'exe uso innosetup
non serve quindi alcun "avviatore" e il nome del file del db è sempe lo 
stesso.
 
 
BFS
 


Interessante
E la copia dell'mde vecchio, che e' quello che sta girando, come la fai?
Non da' errore perche' in esecuzione?
 
 
 


no perchè una volta rilevato l'exe, lo avvio e chiudo il programma
l'exe procede per il suo corso con l'accettazione licenza, avanti, bla 
bla bla etc
 
 
 


Halt, fermo li
Ma se hai un pippo.exe che sta girando e tenti di scaricare un pippo.exe 
e metterlo nella directory del programma attuale, non te lo permetta
Hai detto che non hai un programma 'avviatore', ma allora come fai a 
scrivere nella directory del programma principale un eseguibile con lo 
stesso nome del programma principale quando questo sta girando?
 
 
 


l'mde ha una maschera live update
sul pulsante "aggiorna" ho il codice per prelevare l'aggiornamento, 
previo controlli descritti sopra, file che è un file exe creato con inno 
setup
salvo il file exe nella cartella del programma
avvio l'exe sempre da codice
chiudo l'mde sempre da codice
l'exe fa la procedura di installazione copiando mde in una cartella 
"versione precedente" e salva il nuovo mde nella cartella del programma
 
bfs
 
 
 
 
 
 
 


Ahhhhh allora ce l'hai il programma 'avviatore'
Travestito da Innosetup, ma quello e'


InnoSetup è comodo in quanto può già fare un primo controllo di Versioning, peraltro con poco codice da Inno si può anche Leggere/Scrivere direttamente in un File INI oppure nel CLIENT di Access con ADO, supporta script abbastanza versatili.
 
Io usavo codice su PREINSTALLAZIONE, leggevo la versione nel Client salvata in una Tabella di Servizio, e se inferiore installavo la Nuova altrimenti se uguale skippi la sostituzione del File...
 
In rete trovi o trovavi moltissimo materiale di Innosetup. 
 
@Alex


Si grazie
Conosco, uso ed apprezzo Innosetup
Non riuscivo a capire come faceva Bfs con lo stesso file, in esecuzione, 
ad aggiornarlo
C'era il barbatrucco