Outlook同步问题
买了新手机(Moto V220)后,有软件可以和Outlook数据库同步,很是高兴,后来接着就发现ArcGIS不能用,也许和此软件有关系,也许没有关系。
同步后,发现这个软件好像会修改、甚至部分损坏Outlook数据库,这点非常之不好。
其实Outlook同步并不是什么很难实现的技术,原来觉得复杂,现在想想,很简单,因为Office都是COM对象,这些COM对象创建后,就可以访问其内容,如此而已。
对于同步,其实难的是二者如何同步的算法,而不是具体的实现技术。
附:同步算法,自己想想应该注意的问题
同步首先是集合的合并,但不完全是,比如手机和计算机都有一个“张三”,然后手机中删除了“张三”,那么相应的,计算机中也要删除“张三”,所以每次同步,应该还要在同步程序中保留一份记录的索引(首次同步时建立)。
所以同步算法大概是:
- 首次同步时合并二者(集合的合并算法)
- 在程序中保留一份同步结果的索引,同时修改所有项目的修改时间
- 非首次同步,则计算机和手机内容都和此索引比较
- 如果与此一致或早,而另外一个晚,则修改索引以及另一个;
- 如果二者都晚,则发生冲突,按照业务规则(弹出对话框询问)处理;
- 同步完成后,修改所有项目的修改时间
其问题是,效率不高,因为每次都更新修改时间,比如修改时间不需要更新的就不更新,但同步的比较就稍微复杂了;其他就不清楚了。
而对于很多同步,比如Outlook,应该使用Outlook的删除,将删除结果置于回收站内,对于文件同步,最好也这样做,多为使用者考虑。