我正在編寫一個桌面應用程序,它使用將存放在中央服務器上的主要訪問數據庫,但會有一臺筆記本電腦與該應用程序有離線模式,因此記錄可以在異地創建。當筆記本電腦返回時,我希望它需要同步回主數據庫。vb.net 2010同步兩個訪問數據庫
有沒有人有辦法做到這一點,我簡要閱讀了關於JRO,但有沒有替代/更好的方法?
最初,我只是想寫一些自定義代碼來做到這一點,但認爲我會檢查以確保沒有東西已經存在。
我正在編寫一個桌面應用程序,它使用將存放在中央服務器上的主要訪問數據庫,但會有一臺筆記本電腦與該應用程序有離線模式,因此記錄可以在異地創建。當筆記本電腦返回時,我希望它需要同步回主數據庫。vb.net 2010同步兩個訪問數據庫
有沒有人有辦法做到這一點,我簡要閱讀了關於JRO,但有沒有替代/更好的方法?
最初,我只是想寫一些自定義代碼來做到這一點,但認爲我會檢查以確保沒有東西已經存在。
Jet複製是這種場景的完美解決方案,因爲您可以使用它的最簡單形式,直接複製,並且不需要任何外部依賴關係。
假設您的服務器名爲\ HomeOffice \並且數據庫名爲「MainDatabase.mdb」並存儲在\ AccessDatabases \文件夾中,您可以在命令按鈕後面使用此代碼從筆記本電腦同步到服務器:
Dim dbServer as DAO.Database
Set dbServer = DBEngine.OpenDatabase("\\HomeOffice\AccessDatabases\MainDatabase.mdb")
dbServer.Synchronize CurrentDB.Name
dbServer.Close
Set dbServer = Nothing
現在,有沒有錯誤處理,並且您還沒有檢查衝突,所以你需要做的還不止這些,但是這將讓你開始的基本知識。
有關Jet複製的更多信息,請參閱Jet Replication Wiki。
結果我實際上正在嘗試做其他事情 - 但是如果我正在走下同步路線,我喜歡你的答案的聲音 - 感謝你的輸入! – Shane
我沒有錯過vb.net方面 - 你想使用JRO而不是DAO(就像我的代碼那樣),但它幾乎是相同的代碼。 –
訪問(至少到2003年)內置了複製數據庫的能力,這比使用自己的數據庫要好得多。
下面是對功能的一些文檔:Database Replication
從A95開始的所有Access版本都支持Jet複製,只要你限制自己的MDB格式。只有ACCDB格式缺乏對Jet複製的支持。 –
MS同步框架可能是答案,但它是一個有點棘手成立... http://msdn.microsoft.com/en-us/sync/bb821992
還有就是Microsoft Sync Framework是與ADO兼容。 NET和MS SQL Server/SQL Server Compact,但這不是一個小組件,更像是一個多組件框架。
SuperUser上的一個問題的複製:http://superuser.com/questions/292272/how-do-i-synchronize-multiple-access-databases-together – JohnFx