我正在编写一个桌面应用程序,该应用程序使用将托管在中央服务器上的主访问数据库,但是将有一台笔记本电脑上的应用程序具有离线模式,因此可以在异地创建记录。当笔记本电脑返回时,我希望它需要同步回主数据库。
有没有人对此做过任何指示,我简要介绍一下JRO,但有没有其他/更好的方法?
最初,我只是想写一些自定义代码来做这件事,但我想我会检查以确保那里没有东西。
答案 0 :(得分:3)
Access(至少到2003年)内置了复制数据库的功能,这些功能比使用自己的数据库要好得多。
以下是有关该功能的一些文档:Database Replication
答案 1 :(得分:3)
Jet Replication是这种场景的完美解决方案,因为您可以使用最简单的Direct Copy模式,而不需要任何外部依赖。
假设您的服务器名为\ HomeOffice \且数据库名为“MainDatabase.mdb”并存储在\ AccessDatabases \文件夹中,您可以在命令按钮后面使用此代码从笔记本电脑同步到服务器: / p>
Dim dbServer as DAO.Database
Set dbServer = DBEngine.OpenDatabase("\\HomeOffice\AccessDatabases\MainDatabase.mdb")
dbServer.Synchronize CurrentDB.Name
dbServer.Close
Set dbServer = Nothing
现在,没有错误处理,你没有检查过冲突,所以你需要做更多的事情,但这样可以让你从基础开始。
有关Jet Replication的更多信息,请参阅Jet Replication Wiki。
答案 2 :(得分:0)
MS Sync Framework可能就是答案,但设置起来有点棘手... http://msdn.microsoft.com/en-us/sync/bb821992
答案 3 :(得分:0)
有Microsoft Sync Framework与ADO.NET和MS SQL Server / SQL Server Compact兼容,但这不是一个小组件,更像是一个多组件框架。