Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    68

    Sincronizzare database locale e remoto

    Salve,
    il mio problema è quello di sincronizzare dei database locale e remoto utilizzando c#.
    mi ero orientato verso applicazioni sql compact ,che funzionerebbe creando .sdf da database e poi sincronizzandolo una volta aver effettuato delle modifiche..
    Lo scenario è quello di sincronizzare ""sporadicamente" ,quindi i client nn hanno sempre connessioni...

    il problema ora è questo:
    tabella:
    ------------------------
    Nome ,Cognome,indirizzo
    Prova Prova Prova
    ------------------------
    cliente 1 modifica nome in Prova1 e quindi imposta timestamp ,ad esempio,alle ore 14:20
    cliente 2 modifica solo cognome in Prova1,(ha ancora il database vecchio,quindi nn modificato)e avrà
    Prova Prova1 Prova siccome il suo timestamp è + recente rispetto al vecchio ,anche se nn ha effettuat modifiche sul campo nome,andando a perdere le modifiche effettuate dal client precendente.

    Quindi il punto è che si modificano anche valori che non erano previsti,creando un bel pò di problemi. avete qualche idea?
    Probabilmente non sono stato chiarissimo quindi mi scuso..

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Sincronizzare significa che 2 fonti devono essere identiche, quindi l'una sovrascrive l'altra, di norma in base al TimeStamp.

    Ovviamente si devono impostare dei vincoli restrittivi oltre i quali non è permesso applicare modifiche.
    L'esempio che hai fatto è tipico, e dovrebbe appunto rientrare in tali vincoli, ad esempio:

    Quando è Off-Line un'Utente può SOLO inserire un nuovo Cliente, e può modificarne i dati SOLO se l'ha inserito lui (sempre mentre era Off-Line), ma una volta 'sincronizzato' con il database centrale, non potrà più farlo.


    A meno che tu non voglia creare e gestire (!!!) un campo TimeStamp riferito ad ogni singolo campo della tabella.
    Registrando il TimeStamp di modifica di ogni singolo campo, puoi stabilire quale valore mantenere e quale scartare.

    Oppure potresti usare l'auditing
    http://www.google.it/search?hl=it&sa...0&oq=audit+sql

    Sinceramente non so se è applicabile anche a SQL CE ...
    Perchè usare CE ? Prevedi di usare anche mobile?


  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    68
    prevedo di usare CE perchè devo ammettere la sincronizzazione anche da penna usb.. e quindi .sdf
    per quanto riguarda gli inserimenti,nn sono previsti..prevedo solo la modifica dei dati...e il problema che mi si presentava era appunto quello della modifica dei dati ''non modificati'' ma modificati precedentemente da altri client..
    darò un 'occhiata al link che mi hai postato..intanto grazie..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.