Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
维护行状态信息是 UltraLite 功能集的强大部分。对于数据同步来说,跟踪表和行的状态特别重要。
内部标记用于跟踪 UltraLite 数据库中的行状态。行状态控制事务处理、恢复和同步。当应用程序插入、更新或删除行时,UltraLite 修改该行的状态,以反映操作和执行操作的连接。提交事务时,会修改该事务影响到的所有行的状态,以反映该提交操作。如果在提交时发生了意外故障,则整个事务将会回退。以下列表总结了这些行为:
发出删除操作时 每个受影响的行的状态均会更改,以反映该行已被删除。恢复行的原始状态以撤消删除。
提交删除操作时 受影响的行并不总是从内存中删除。如果该行从未进行过同步,则该行会被删除。如果该行进行过同步,则该行不会被删除,因为删除操作首先需要与统一数据库同步。在下一次同步之后,该行将从内存中删除。
更新行时 创建该行的新版本。旧行和新行的状态会设置为使旧行不再可见,而新行可见。
提交行更新操作时 提交事务时,会修改该事务影响到的所有行的状态,以反映该提交操作。当同步更新时,旧行和新行均需要用于冲突检测和解决。然后旧行从数据库中删除,新行只是变成正常行。
添加行时 行添加到数据库并标记为未提交。
提交添加行操作时 行标记为已提交,同时也标记为需要与统一数据库同步。