2011-11-04 158 views
4

我想用谷歌日历同步我的数据库(我的数据库上的任务,具有解锁,日期,开始时间和结束时间,以及用户)。数据库和谷歌日历之间的数据同步

对于与Google同步我打算使用these components(当然,我可以以某种方式自己编写整个东西,但这是我现在可以为未来做准备的事情,现在我缺乏时间,或者您可以提出一些建议连接到谷歌日历发送/接收数据的工作代码?)。

现在我的主要问题是没有真正联系到Delphi编程无论如何,我必须问一个德尔福相关的问题,因为其他问题得到unviewd(如我问this one)。

所以我想知道如何做同步。注意:我会单向同步,生成的日历将是只读日历。

我可以设置过去和未来同步的最大数量(例如过去10天,未来100个)。然后,我的想法是这样的: 当我开始同步应用程序时,我严格阅读范围内的谷歌日历记录,我逐一比较我在db中的内容,然后“合并”更改。然后在计时器上检查我的数据库的差异,我上传更改。

但我不确定这些是最佳解决方案。

简化的真实案例是:想象一下,它是一个CRM,它为每个用户提供一些任务。由于超越了每项任务,我只想在自己的应用程序中管理这种逻辑,但将日历推到谷歌的想法是,它可以很容易地从任何移动设备上获得。这就是单向同步的方式。 Ic也应该让日历在每次同步时都不会被读取,我会“下载”新插入的任务,但我会忽略已删除的和已编辑的任务。在第二种情况下,仅仅跟踪数据库中的更改是不够的,但我也会跟踪谷歌上的更改,至少要“拦截”新添加的任务。

我知道这是一个棘手的问题,但我想触发一个可能有用的答案,将我重定向到一个同步算法或Delphi示例代码或任何可以帮助我在这个问题上取得进展的东西。谢谢。

+0

[Sync Algorithms](http://stackoverflow.com/questions/59521/sync-algorithms) –

+0

的可能重复我已经完成了一个培训计划程序数据库应用程序,它可以同步到员工Outlook日历。我使用的算法很快且很脏。我简单地在描述字段文本前添加一个标识符,如“-TSDB-”,这样我就可以删除符合条件的所有事件,然后从数据库中重新加载。无需检查个别事件。不知道你是否可以使用这样的东西......只是把它放在那里。 –

+0

谢谢,这是我用于与本地展望同步的技巧。但是,为了同步到gmail日历,我想要一些其中有一些性能的东西,我无法通过删除和重新创建5分钟10000个任务来同步ecery。 – LaBracca

回答