2016-04-27 81 views
0

我有一个正在处理的“笔记”应用程序,用户的所有笔记都保存在sqlite.db文件中。但是,我希望将此数据库文件同步到用户的OneDrive云帐户,以便笔记在云中处于最新状态。最终,我将使该应用程序与Windows Phone兼容,因此PC和手机版本将通过OneDrive帐户保持同步....如果甚至可以实现的话。是否可以在OneDrive文件夹中的SQLite数据库上运行查询?

所以我想知道是否有可能在用户的OneDrive帐户上的sqlite.db文件上运行查询,或者我只需要每次在一个位置发生更改时重新同步整个文件?

我可以想象,后一种方法将是一个问题,因为我需要知道哪些单独的记录被修改或删除,并做出相应的更改,所以是....帮助? :]

回答

0

如果可以在用户的​​OneDrive帐户上的sqlite.db文件上运行查询?

SQLite不能直接与客户端/服务器SQL数据库引擎(如SQL Server或MySQL)相比较。它努力为个人应用和设备提供本地数据存储。因此,您无法直接在用户的OneDrive帐户上的sqlite.db文件上运行查询。如果您想使用用户的OneDrive云帐户,则可以利用OneDrive's App Folder。然而,当你使用这种方法时,你必须反复下载和上传你的SQLite数据库文件来同步数据,正如你可以想象的那样,当处理网络问题和冲突时,这会变得很复杂。

根据你的情况,我建议你使用Offline Data Sync in Azure Mobile Apps

当您的应用程序处于离线模式时,用户仍然可以创建和修改数据,并将其保存到本地商店。当应用程序重新联机时,它可以与Azure移动应用程序后端同步本地更改。该功能还包括支持在客户端和后端更改相同记录时检测冲突。然后可以在服务器或客户端上处理冲突。

离线同步有很多好处:

  • 通过本地缓存设备上的服务器数据
  • 创建强大的应用程序时,有网络问题
  • 允许最终用户仍然存在有用提高应用程序的响应在没有网络访问的情况下创建和修改数据,支持极少或没有连接的情况
  • 跨多个设备同步数据,并在两个设备修改相同记录时检测冲突
  • 在高延迟或流量计费的网络

  • 限制网络使用欲了解更多信息,请参阅Offline Data Sync in Azure Mobile AppsEnable offline sync for your Windows app,并在GitHub上的Todo offline sample