Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Sincronizzazione archivi access vb.net

    Buonasera a tutti. Ho provato a cercare ma purtroppo senza alcun risultato. Vi espongo il mio problema. Ho la necessità di sincronizzare due database access identici. Uno situato su un pc fisso e uno in un portatile. Nel dettaglio, con il portatile, eseguo le operazioni giornaliere dal mio software e alla sera, collego il portatile in rete e sincronizzo i due archivi. Dico sincronizzo perchè può capitare che nell'arco della giornata, vengano eseguite operazioni sul "server" mentre vengono fatte anche nel portatile. Non so se mi sono spiegato.

    CMQ come archivio utilizzo come già detto access 2003 e linguaggio visual studio 2008 (vb)

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Premetto che non mi metterei ad implementare una cosa del genere, ma preferirei collegarmi da remoto al server in Terminal Server, ma questo dipende dalla configurazione della rete LAN.

    Comunque, in linea di massima, devi prevedere nelle tabelle alcuni campi che ti consentano di individuare e confrontare i singoli record:

    - il Nome del computer da cui si è modificato o aggiunto un record
    - il TimeStamp che indica la data di creazione del record
    - il TimeStamp che indica la data di modifica del record
    - l'utente che ha creato il record
    - l'utente che ha modificato il record

    Poi realizzi la routine di sincronizzazione che potrà aggiornare i record, decidendo quale record dovrà essere aggiornato facendo i dovuti confronti.

    Però questo non risolve il problema che può verificarsi quando 2 utenti modificano lo stesso record, in quanto tu puoi sapere chi l'ha modificato per ultimo, ma non puoi sapere quale campo della tabella è stato modificato. Esempio:

    Tabella PIPPO, record ID=211
    campi: PLUTO="Ciao", PAPERINO = "Arrivederci"

    L'utente A (notenook) modifica il valore del campo PLUTO in "Addio"
    L'utente B (server) modifica il valore del campo PAPERINO in "Salve!"

    Ora, qualsiasi copia del record vada a sovrascrivere l'altra, una delle informazioni andranno perse, in questo caso la modifica dell'utente A, che infatti se in seguito riapre il record è convinto di trovare i valori che si aspetta:
    "Addio" e "Arrivederci"

    mentre invece si troverà tutta un'altra cosa, ovvero:
    "Ciao" e "Salve"

    Per evitare questo dovresti creare un file di LOG che registri ogni modifica di ogni singolo campo di ogni tabella, in modo da poter confrontare nei due LOG ogni campo per stabilire come e quali campi aggiornare. Un lavoro immane!

    L'alternativa potrebbe essere quella di usare SQL Server 2008 che implementa già un meccanismo di auditing (assai migliorato rispetto al 2005) :
    Auditing in SQL Server 2008
    http://msdn.microsoft.com/en-us/library/dd392015.aspx


    Resto dell'idea che la connessione remota è sicuramente la più semplice e meno invasiva, sempre ammesso che nel programma si abbiano già implementato le procedure di aggiornamento nella gestione multi-utente.


  3. #3
    ti ringrazio infinitamente per la risposta. In effetti, mi sono posto anche io questo dubbio. Ora vedrò di risolverlo in qualche modo, magari utilizzando semplicemente delle dupliche con dei messaggi a video del tipo"attenzione, stai lavorando con un archivio scollegato, se effettui delle modifiche in locale, non potranno essere sincronizzate", ti dico questo perchè non ho la possibilità di collegarmi in remoto, il software stà in posati dove non sempre c'è adsl o prende il telefono quindi la teleassistenza è un po difficile. CMQ grazie, e con l'occasione auguro delle buone feste a tutti

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.