如果在远程数据库和统一数据库中均更新某行,则下次同步数据库时会发生冲突。
可使用以下选项来检测冲突:
无冲突检测 如果不希望有任何冲突检测,请选择此选项。应用已上载的更新而不检查冲突。这样就不必从统一数据库读取当前的行值,因此同步更新的速度可能会更快。
基于行的冲突检测 如果自上次同步后行已由远程和统一数据库更新,则会检测到冲突。
此选项定义 upload_fetch 和 upload_update 脚本。请参见通过 upload_fetch 或 upload_fetch_column_conflict 脚本检测冲突。
基于列的冲突检测 如果远程数据库和统一数据库中行的相同列都已更新,则会检测到冲突。
此选项定义 upload_fetch_column_conflict 脚本。请参见通过 upload_fetch 或 upload_fetch_column_conflict 脚本检测冲突。
如果表中包含 BLOB 且选择 [基于列的冲突检测],则使用 [基于行的冲突检测]。
可使用以下选项来解决冲突:
统一 先入优先:拒绝存在冲突的上载更新。
远程 后入优先:始终应用上载更新。
仅在使用基于列的冲突检测时,才使用此选项。否则,如果您选择无冲突检测,可获得同样的结果和更佳的性能。
时间戳 最新的更新优先。要使用此选项,您必须为表创建和维护时间戳列。此时间戳列应记录上次更改行的时间。该列应同时存在于统一数据库和远程数据库中,而且不是同一个用于基于时间戳的下载的列。远程数据库和统一数据库必须使用相同的时区(首选 UTC)且其时钟必须同步才可正常工作。
自定义 编写自己的 resolve_conflict 脚本。向导完成后,可在 [事件] 选项卡中完成此工作。
在 Sybase Central 的左窗格中,展开 [MobiLink 12]、MobiLink 项目名称、[同步模型],然后选择同步模型的名称。
在右窗格中打开 [映射] 选项卡。
在 [表映射] 窗格中选择一个表映射。
在 [冲突检测] 下拉列表中,选择 [无]、[基于行] 或 [基于列]。如果选择 [无],则操作到此结束。
如果选择 [基于行] 或 [基于列],请从 [冲突解决] 下拉列表中选择 [统一]、[远程]、[时间戳] 或 [自定义]。
如果选择 [时间戳] 冲突解决,请打开下部窗格中的 [冲突解决] 选项卡,然后输入要使用的时间戳列的名称。
如果选择 [自定义] 冲突解决,请打开 [事件] 选项卡,然后为此表编写 resolve_conflict 脚本。
![]() |
使用DocCommentXchange 讨论此页。
|
版权 © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |