[表映射] 窗格中,每个远程表对应一行。如果选择了统一数据库,则远程表即会被映射,且映射方向为 [双向]、[只上载到统一的] 或 [只下载到远程]。
这些列中的值即为您在 [创建同步模型向导] 中选择的值,如果未进行选择,则为该向导的缺省值。通过编辑此表,可逐个表对应地修改这些值。
[表映射] 窗格包含以下各列。
[顺序] 列 此列无标题。它为表中的网格编号。如果更改这些表的排序(通过单击列标题),网格编号不会因重新排序而更改。如果一个远程表已被添加、标记为要删除或者被修改,则此列中会出现图标。
[状态] 列 此列通知您表映射是否存在错误、警告或信息性消息。如果此列中出现图标,则选择表映射,然后打开 [详细信息] 窗格中的 [状态] 选项卡查看消息内容。
[远程表] 列 这是远程数据库中您在同步的远程表。远程表所有者的名称括在括号中。
右击 [表映射] 窗格中的行并选择 [删除],可将远程表标记为要删除。在保存模型时,将删除该远程表。删除远程表意味着在您部署到新的远程数据库时不会创建该表。请参见修改处理删除的方式。
可使用 [创建新远程表] 窗口添加远程表。请参见修改模型创建的远程数据库。
[映射方向] 列 同步的方向。方向可以是 [未同步]、[双向]、[只下载到远程] 或 [只上载到统一的]。
如果表映射方向为 [未同步],则该表仍是远程数据库模式的一部分。当部署模型时,会在远程数据库上创建表,但不会有任何信息与其同步。请参见修改表映射和列映射。
如果您不希望在远程数据库创建表,则将其从模型中删除。请参见修改处理删除的方式。
[统一表] 列 这是要与对应的远程表同步的统一表。同步会在这些表和 [远程表] 列中的表之间进行。单击列并从统一表的列表中选择其它的表,可更改统一表。
查看 [详细信息] 窗格中的 [列映射] 选项卡,来检查所选表远程列与统一列的映射情况。
[下载类型] 列 可在 [详细信息] 窗格的 [下载类型] 选项卡中查看和修改其实现。此列中的选项有:
时间戳 仅当数据自上次下载后发生变化时,才下载数据。当使用基于时间戳的下载时,每个统一表均必须具有一个时间戳列,以跟踪何时对行进行更改。通过将某列添加到统一数据库表或通过创建影子表,可完成此工作。影子表是由基表的所有者创建的。选择 [时间戳] 时,即为您生成必需的对象。请参见基于时间戳的下载。
快照 每次同步时都会下载统一表中的所有数据,即使已经下载过的数据也不例外。请参见快照同步。
自定义 编写自己的 download_cursor 和 download_delete_cursor 脚本,以代替自动生成的脚本。可在 [事件] 选项卡上完成此工作。请参见编写 download_cursor 脚本和编写 download_delete_cursor 脚本。
[下载删除] 列 如果选中此复选框,在统一数据库上删除的数据也会在远程数据库上删除。
如果使用基于时间戳的同步并且选择此列,则需要记录在统一数据库上进行的删除。有两种方法可实现这一点:使用影子表(缺省值)或者使用逻辑删除。在 [详细信息] 窗格中,打开 [下载删除] 选项卡,以查看和修改实现情况。
如果正在使用快照下载并且已经选择此列,远程数据库中所有的现有行会在添加下载的行之前被删除。
如果下载类型为 [自定义],则不能选择此选项。这种情况下,必须编写自己的 download_delete_cursor 脚本。可在 [详细信息] 窗格中的 [事件] 选项卡上完成此工作。
[下载子集] 列 此列中的选项有:
无 将相同的数据下载到每个远程数据库。
用户 每个同步用户(也称作 MobiLink 用户)仅下载用户名与同一个表或直接连接的表中的某个列相匹配的行。可在 [详细信息] 窗格的 [下载子集] 选项卡上查看或修改其实现。
远程 每个远程数据库仅下载其远程 ID 与同一表中或者直接连接的表中的列匹配的行。可在 [详细信息] 窗格的 [下载子集] 选项卡上查看或修改其实现。
自定义 仅当下载游标 WHERE 子句中 SQL 表达式为 true 时,每个同步才下载行。在需要多个连接或者在下载游标 WHERE 子句中需要特定业务逻辑时,此选项很有用。可在 [详细信息] 窗格的 [下载子集] 选项卡上查看或修改此表达式。
[冲突检测] 列 此列中的选项有:
无 始终应用已上载的更新而不检查冲突。通过此选项可获得最佳性能。
基于行 如果自从上次同步以来已在远程和统一数据库中队行进行了更新,则将检测冲突。
基于列 如果远程数据库和统一数据库中行的相同列都已更新,才会检测到冲突。否则,将仅应用已上载列的更新。如果表中包含 BLOB 列,则改用基于行的冲突检测。
请参见检测冲突。
[冲突解决] 列 此列中的选项有:
统一 先入优先。如果上载更新存在冲突,它们将被拒绝。
远程 后入优先。始终应用上载更新。将此选项仅用于基于列的检测;否则,请禁用冲突检测,这样可获得相同的结果,但性能更佳。
Timestamp 较新更改优先,使用您维护的时间戳列。此时间戳列记录上次更改该行的时间。在远程表和统一表中都应存在此时间戳列,同步中也应包含此时间戳列。远程数据库和统一数据库必须使用相同的时区(首选 UTC)且其时钟必须同步才可正常工作。
自定义 编写自己的 resolve_conflict 脚本,而不是自动生成这些脚本。可在 [事件] 选项卡上完成此工作。
请参见解决冲突。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |