Chinaunix首页 | 论坛 | 博客
  • 博客访问: 101293799
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-10 20:50:53

   来源:赛迪网    作者:Sybase

步骤清单:

在上一部分中,我们看见在download_cursor表事件中有两个参数,其中我们使用了ml_username这个参数。那么, last_download这个参数是怎么使用的呢?我们注意到,last_download这个参数是TIMESTAMP类型的。它指明了上一次下载的时间。我们可以通过比较时间戳,来达到每次仅同步下载自上次下载以来更改过的数据。在下载阶段紧前面的最后一次成功的同步过程中,从统一数据库中获取的时间值即为 last_download 时间戳。如果当前用户从未成功地进行过同步,则该值将被设置为 1900-01-01。下图展示了MobiLink服务器与客户端在首次交互前后last_modified的变化情况:

在真正实施比较之前,我们需要在统一数据库一侧做一些改动,也就是在一些表上增加一个时间戳的字段。比如,我们在录像中对统一数据库实施了以下语句:

ALTER TABLE emp ADD last_modified 
TIMESTAMP NOT NULL DEFAULT TIMESTAMP

Oracle的映射数据类型为date

IBM DB2的映射数据类型为timestamp

MS SQL Server的映射数据类型为datetime

Sybase ASE的映射数据类型为datetime

时间戳方法是可以进行高效的同步的最实用的通用技术。此项技术涉及跟踪每个用户上次进行同步的时间,并使用此信息控制下载到每个远程数据库的行。

MobiLink 保留了一个用以说明每个 MobiLink 用户上一次下载数据的时间戳值。该值被称为上次下载的时间戳。上次下载的时间戳将作为一个参数被提供给许多事件,该时间戳还可以在同步脚本中使用。

阅读(406) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~