Newsgroup: it.lavoro.professioni.webmaster
Titolo: Consiglio su agg. copie db

Dovrei fare in modo che un mio cliente possa portarsi in giro la copia 
di una applicazioncina che gli ho fatto e che al rientro sia in grado di 
aggiornare il db gemello "ufficiale" (sta cosa all'inizio la voleva, poi 
non la voleva piu' ... adesso la rivuole ....)
Lui dice che tanto gli aggiornamenti saranno sempre a senso unico ma 
all'atto pratico sicuramente non sara' cosi'
Vorrei non appesantire troppo l'attuale gestione con l'aggiunta di 
controlli che magari alla fine si rivelano inutili. Se qualcuno s'e' 
trovato in passato e ha qualche consiglio da passarmi sul controllo 
"bidirezionale" dello stato dei dati mi farebbe una gran cortesia 

 cortesia
A dire il vero no, sorry :-(
Confesso però che la questione m'incuriosisce, per questo mi sono permesso 
di fare un reply al tuo post!!!
-- 
   Medianagramma - Soluzioni web
:::.. 
http://www.medianagramma.it
 ..::: 

 "bidirezionale" dello stato dei dati mi farebbe una gran cortesia
ehm se specifichi che db vuoi utilizzare sarebbe anche meglio, in quanto se 
utilizzi oracle hai alcune possibilità con access altre, inoltre oltre a 
dirci il db che vuoi usare sarebbe carino capire il contesto e la tecnologia 
che vuoi applicare (applicativo stand-alone, web, ecc)
-- 
Christian Paparelli
http://www.ithost.ch
 

 cortesia
A dire il vero no, sorry :-(



Rispondo a entrambi e vi ringrazio in anticipo
Uso Access perche' la cosa e' davvero senza particolari pretese. Se non 
fosse che e' sempre stata nell'aria questa cosa degli aggiornamenti...
L'applicazione gira in una piccola rete aziendale e viene utilizzata 
come un'applicazione web locale (
ASP.NET
).
In pratica il cliente ha modo di avere sotto mano tutti i dati dei 
clienti che visita: i prodotti che acquista, le cose che gli lascia in 
visione, il progressivo del fatturato negli anni, tutta la rubrica... 
cio' che ha sempre scritto su carta e che gli andava bene cosi' come se 
l'era concepito in anni di lavoro. Hanno un gestionale ma non lo 
adoperano perche' mal s'adatta alla loro visione del loro lavoro. 
Sopportano anche dei doppi caricamenti - piu' in la gestiremo dei 
trasferimenti automatici - ma preferiscono cio' che gli ho cucito su 
misura.
Gran parte dei dati, ad eccezione di quelli relativi alle fatture, 
vengono aggiornati dal db esterno e hanno la priorita' su quelli 
eventualmente immessi nella rete aziendale (il cliente dice proprio che 
e' cio' che ha lui sul suo pc a far fede ma vorrei pararmi e gestire 
eventuali segnalazioni e consentire quindi all'utente di decidere cosa 
aggiornare nel caso ci siano modifiche che insistono sullo stesso tipo 
di dato). I dati relaviti alle fatture dei clienti invece vanno 
trasferiti sul db "nomade". Probabilmente c'e' una terza copia che pero' 
dovrebbe avere un ruolo molto passivo (devo sentire meglio se serve 
davvero e se ha il ruolo che ho inteso)

 nel caso ci siano modifiche che insistono sullo stesso tipo di dato).
Hai valutato l'ipotesi di fare ricorso semplicemente ad un controllo 
pseudo-timestamp? In pratica ogni qualvolta che vai ad effettuare la 
sincronizzazione fai prima di tutto un controllo circa l'unicità della 
chiave primaria (che in tale contesto non credo possa essere un semplice ID 
numerico), se non esiste crei il nuovo record, se invece esiste vai a 
controllare la data e l'ora in cui il record è stato immesso, e se non 
coincidono presenti all'utente le differenze chiedendogli se effettuare la 
sostituzione o meno. In questo modo, invece di ciclare su tutti i campi per 
vedere se sono uguali o meno vai a controllare soltanto il campo contenente 
il timestamp. C'è sempre la possibilità che due utenti abbiamo modificato lo 
stesso record nello stesso giorno, alla stessa ora, con gli stessi minuti e 
gli stessi secondi, ma in un contesto medio-piccolo è abbastanza remota!


 gli stessi secondi, ma in un contesto medio-piccolo è abbastanza
remota!
Fosse così semplice.
Per esserne sicuri il timestamp ti indica che ci sono differenze ma il
fatto che siano più recenti non implica che siano valide.
Esempio: tabella anagrafica
ore 10: DB1 e DB2 nome=pippo cognome=rossi
ore 11: DB1 nome=topolino
ore 12: DB2 cognome=bianchi
ore 13: sincronizzazione
Se fai come dici tu ti ritrovi pippo bianchi ma il corretto dovrebbe
essere topolino bianchi.
L'unica soluzione vera e chiedere ogni volta che c'è un cambiamento.
La sola cosa automatica, senza rischi, che puoi fare è quello di
inserire i nuovi record.
Spero di essermi fatto capire.
Altra cosa. Questo appena espresso vale in un contesto di semplice
tabella singola senza "interferenze" con altre ma se abbiamo un
database complesso con diversi campi correlati e modificati su più
taelle di un database in base a delle procedure la cosa si complica e
parecchio senza esserci una soluzione unica ma che va trovata di caso
in caso.

 ha scritto nel messaggio 
news:42afcc00$1...@x-privat.org...
scusate ma tutto suona un po' di UCAS
Visto che usi access imposta le repliche e tramite jro puoi gestirti il 
tutto senza preoccuparti di nulla, basta configurare correttamente lo schema
Qui trovi un inizio 
http://office.microsoft.com/it-it/assistance/HP030698321040.aspx



lo sapevo io che ci doveva essere un metodo semplice :-)))
oh Christian sei sempre una risorsa gigantesca, grazie del siggerimento
Se non impazzisco prima (per altre cose) vi aggiorno su cosa ho fatto e 
sui problemi che eventualmente ho incontrato
grazie anche a visuddhi e sasmino 

 sui problemi che eventualmente ho incontrato
Yes, facci sapere... sono curioso ;-)
