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

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Sybase

2008-04-10 20:51:11

  来源:赛迪网    作者:Sybase

如果您正在使用 Adaptive Server Anywhere 统一数据库,而且保存上次修改信息的列的类型为 DEFAULT TIMESTAMP,则不应同步该列。如果您的远程数据库需要这样的列,应使用不同的列名。否则,时间戳的缺省值可能被上载值覆盖,并不会包含上次在统一数据库中修改该行的时间。当我们在统一数据库中的表中增加了时间戳后,就可以在download_cursor中编写如下的脚本:

CALL ml_add_table_script(
'demo4',
'emp',
'download_cursor',
'SELECT empno, empname, gender, 
deptno FROM emp WHERE last_modified > ?')

所以,上述download_cursor的脚本中将只下载自上次同步后更改的数据。

本部分的代码如下:

center:

ALTER TABLE emp ADD last_modified 
TIMESTAMP NOT NULL DEFAULT TIMESTAMP


Remote:

CREATE PUBLICATION Lab_04
(
TABLE emp(empno, empname, gender, deptno)
)


CREATE SYNCHRONIZATION USER "Sales04"


CREATE SYNCHRONIZATION SUBSCRIPTION TO Lab_04
FOR "Sales04"
TYPE 'TCPIP'
ADDRESS 'host=localhost;port=2439'
OPTION ScriptVersion = 'demo4'


Center:

CALL ml_add_table_script(
'demo4',
'emp',
'download_cursor',
'SELECT empno, empname, gender, 
deptno FROM emp WHERE last_modified > ?')

COMMIT


cmd:

dbmlsrv9 -dl -v+ -x tcpip -c 
"dsn=center" -o mlserver.mls -zu+

dbmlsync -o dbmlsync.out -v 
-e "sv=demo4" -c "dsn=remote"
阅读(478) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~