none
在使用EDB增删联系人数据库后,如何使联系人窗口刷新? RRS feed

  • 问题

  • 我使用WM6.0 professional SDK在一台HTC手机上进行开发,手机版本为WM 6.1 professional,CE 操作系统5.2.21051。

    在使用EDB接口成功打开数据库后,我使用CeWriteRecordProps向联系人数据库“Contacts Database”增加了一条记录。

    返回值显示成功,但是如果立即进入系统自带的“联系人”窗口观察的话,会发现并没有记录并没有增加。

    但是如果重启手机,会发现重启前插入记录已经在联系人中正常显示了。

    使用POOM插入没有这个问题,新插入的记录会立即得到显示。

    这显然是数据库发生变化时系统自带的“联系人”没有得到数据库发生变化的通知导致的。我有什么办法可以要求联系人更新吗?或者提醒数据库主动通知相关程序?

    我现在考虑可以使用POOM存储再删除一个记录来达到刷新的目的,但我想知道解决这个问题的标准方法是什么?

    2011年4月20日 10:03

答案

  •  谢谢您的回复!

    我尝试了您的方案,在CeWriteRecordProps之后调用CeFlushDBVol,但是问题照旧。

    我现在使用POOM完成编辑操作,使用数据库完成读取操作,以达到速度与可用的平衡点。

    POOM是很不错的接口,就是太慢,稳重大概是微软的风格,我只有接受了。

    2011年4月26日 3:44

全部回复

  • 您好,

    据我所知,CeWriteRecordProps函数执行成功后,记录只是在缓冲在内存中,必须调用CeFlushDBVol方法来写入磁盘,或者当Flush时间间隔过期后自动写入磁盘,您可以尝试调用这个函数试试。

    致礼


    Jesse Jiang [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年4月22日 6:59
    版主
  •  谢谢您的回复!

    我尝试了您的方案,在CeWriteRecordProps之后调用CeFlushDBVol,但是问题照旧。

    我现在使用POOM完成编辑操作,使用数据库完成读取操作,以达到速度与可用的平衡点。

    POOM是很不错的接口,就是太慢,稳重大概是微软的风格,我只有接受了。

    2011年4月26日 3:44