本课假定您已完成前面的所有课程。 请参见第 1 课:设计模式。
在这一课,您将创建一个用于统一数据库的同步模型。[创建同步模型向导] 提供了在统一数据库和远程数据库之间设置同步的分步说明。
在 [欢迎] 页面上的 [您要给新同步模型指定什么名称] 字段中键入 sync_ase,然后单击 [下一步]。
在 [主键需求] 页面上选中全部三个复选框。单击 [下一步]。
从列表中选择 [ase_cons] 统一数据库,然后单击 [下一步]。
单击 [否,新建一个远程数据库模式],然后单击 [下一步]。
在 [新的远程数据库模式] 页面上的 [您要在远程数据库中使用哪些统一数据库表和列] 列表中选择下列表:
单击 [下一步]。
单击 [基于时间戳的下载],然后单击 [下一步]。
基于时间戳的下载可以使所传送的数据量最小,因为此下载类型仅传输自上次下载后经过更新的数据。
在 [时间戳下载选项] 页面上,单击 [使用影子表来保存时间戳列],然后单击 [下一步]。
最好选择使用影子表,因为这样不会对现有的表进行任何更改。
在 [下载删除] 页面上执行以下任务:
在 [是否要在远程数据库中删除那些在统一数据库中被删除的数据] 选项中,单击 [是]。
单击 [使用影子表来记录删除]。
MobiLink 将在统一数据库中创建影子表,以执行需要同步的删除。
单击 [下一步]。
单击 [是,向每个远程数据库下载相同的数据],然后单击 [下一步]。
在编辑同步模型时,通过使用自定义逻辑,指定将特定数据下载到远程数据库的方式。
单击 [无冲突检测],然后单击 [下一步]。
尽管本教程未指定任何冲突检测,但许多应用程序都需要进行冲突检测。
在 [发布、脚本版本和说明] 页面上执行以下任务:
在 [您要给此发布指定什么名称] 字段中键入 sync_ase_publication。
在 [您要给此脚本版本指定什么名称] 字段中键入 sync_ase_scriptversion。
发布是远程数据库上的对象,用于指定要同步的数据。MobiLink 服务器脚本定义了应如何将来自远程数据库的上载数据应用到统一数据库,同时也对脚本版本组的脚本进行了定义。可以针对不同的应用程序使用不同的脚本版本,从而使您只需维护单一 MobiLink 服务器就可同时同步多个不同的应用程序。
单击 [完成]。
单击 [视图] » [文件夹]。
在 Sybase Central 左窗格中 [MobiLink 12] 的下面,依次展开 [ase_project]、[同步模型] 和 [sync_ase]。
在同步模型中为各表设置同步数据的方向。
在右窗格中,单击 [映射] 选项卡,然后设置各行的 [方向] 列,如下所示:
按远程 ID 过滤下载到远程数据库的行。
对于包含 stores 表的行,将 [下载子集] 更改为 [自定义]。
在右窗格底部,单击 [下载子集] 选项卡。
通过对 download_cursor 脚本的 WHERE 子句添加限制,可按唯一标识远程数据库的远程 ID 过滤行。
在 [要在下载游标的 WHERE 子句中使用的 SQL 表达式] 字段中键入搜索条件。例如,以下 SQL 脚本可用于 stores 表:
"dbo"."stores"."stor_id" = {ml s.remote_id} |
下载游标脚本指定了要从各个表中下载到远程数据库的行和列。上述搜索条件可确保仅下载有关一家书店(即标识符与数据库的远程 ID 相同的那家书店)的信息。
对包含 sales、salesdetail 和 discounts 表的行重复上一步骤。
必须将在 SQL 脚本中指定的表重命名为正在编辑的行中的表名称。
对 sales 表使用以下 WHERE 子句脚本:
"dbo"."sales"."stor_id" = {ml s.remote_id} |
对 salesdetail 表使用以下 WHERE 子句脚本:
"dbo"."salesdetail"."stor_id" = {ml s.remote_id} |
对 discounts 表使用以下 WHERE 子句脚本:
"dbo"."discounts"."stor_id" = {ml s.remote_id} |
保存同步模型。
单击 [文件] » [保存]。
至此,同步模型创建完成,接下来您可以部署该模型。
前进至第 7 课:部署同步模型。
![]() |
使用DocCommentXchange讨论此页。
|
版权 © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |