表事件:
begin_upload:在远程每张表执行
上载到统一数据库之前调用。
(参数:ml_username, table)
upload_insert:对每一行将送至统
一数据库的插入调用。(参数:col1,
col2, col3...)
upload_update:对每一行将送至统一
数据库的更新调用。(参数:SET col1,
col2, ..., colN WHERE pk1, pk2, ..., pkN)
upload_delete:对每一行将送至统
一数据库的删除调用。(参数:pk1, pk2, ..., pkN)
end_upload:在将远程表的更改执行至
统一数据库后调用。(参数:ml_username, table)
begin_download:在统一数据库将每张
表的数据下载前调用。(参数:last_download,
ml_username, table)
download_cursor:每张表调用一次,将统一数据库
的表数据下载至远程数据库。
(参数:last_download, ml_username)
end_download:在统一数据库将每张表的数据下载后
调用。(参数:last_download, ml_username, table) |
需要注意的是,在连接事件和表事件中有一些重复的事件,例如begin_upload,不过它们作用的级别不一样,触发的时间也不一样。对于所有的连接事件,我们都用调用ml_add_connection_script存储过程来实现其中的脚本;对于所有的表事件,我们都通过调用ml_add_table_script存储过程来实现其中的脚本。
例如:
call ml_add_connection_script('Lab', 'begin_download',
'CALL InitiateDownload()'), |
第一个参数是代表脚本版本,第二个参数指明连接事件的名称,第三个参数指定连接事件触发时的逻辑,在这里是调用一个存储过程。再看一个表事件的例子:
call ml_add_table_script('demo2', 'emp',
'download_cursor', 'SELECT * FROM emp
WHERE deptno=''0001'''), |
第一个参数代表脚本版本,第二个参数指明该事件跟哪个事件相关,第三个参数指明事件的名称,第四个参数是事件触发时执行的语句。在这里,我们指定服务器只将emp中满足deptno='0001'的数据下载至远程。
upload_delete、upload_update和upload_insert里面的参数都是通过?占位符表示的。详细信息,请参看《MobiLink 同步技术用户指南》。 |