在本部分的屏幕录像中,我们仅使用了针对emp表的update_delete和download_cursor两个事件来指挥只有部门号为0001的数据能下载到远程数据库中,并且在远程数据库中做的删除动作能反映到中心数据库。在服务器启动的过程中去掉了-za+选项,让服务器不要自动生成脚本,去掉了-zu+的选项,通过dbmluser来添加用户,形成真实的用户验证。并且在同步dbmlsync触发同步的过程中,我们去掉了SendColumnNames=ON的扩展选项,因为我们在服务器端已经定义了同步脚本。
以下是屏幕录像中的全部脚本:
将在上一议题的Demo中备份的数据库文件拷贝过到新的文件夹下,在命令行中分别启动中心与远程数据库:
dbeng9 center.db
dbeng9 remote.db
dbisql
|
对于remote:
CREATE PUBLICATION Lab_02
(
TABLE emp
)
CREATE SYNCHRONIZATION USER "Sales02"
CREATE SYNCHRONIZATION SUBSCRIPTION TO Lab_02
FOR "Sales02"
TYPE 'TCPIP'
ADDRESS 'host=localhost;port=2439'
OPTION ScriptVersion='demo2'
|
对center:
CALL ml_add_table_script
('demo2', 'emp', 'upload_delete',
'DELETE emp WHERE empno=?');
CALL ml_add_table_script('demo2', 'emp', '
download_cursor',
'SELECT * FROM emp WHERE deptno=''0001''');
|
在控制台下:
dbmluser -c "dsn=center"
-u Sales02 -p abcdefg
dbmlsrv9 -dl -v+ -x tcpip -c "dsn=center"
-o mlserver.mls
dbmlsync -c "dsn=remote" -o dbmlsync.out
-v -u Sales02 -mp abcdefg -e "sv=demo2"
|
其中,sv是ScriptVersion的简写。
(责任编辑:卢兆林)
<<上一页
1
2
3
|