foxpro 更新源表

发表于:2007-07-02来源:作者:点击数: 标签:
当你准备用离线视图中的变化更新源表时, 在 use 命令中使用online 子句来打开视图使其与源表关联, 然后使用tableupdate()。 以online 模式打开视图需要对视图表以独占的方式访问否则会发生错误,并表能使视图与源表关联; 它简单的打开视图并准备更新源表。以

当你准备用离线视图中的变化更新源表时, 在 use 命令中使用online 子句来打开视图使其与源表"关联", 然后使用tableupdate()。

以online 模式打开视图需要对视图表以独占的方式访问否则会发生错误,并表能使视图与源表关联; 它简单的打开视图并准备更新源表。以下是示例代码:

use LV_CUSTOMER online exclusive

与admin 模式一样, 视图在online 模式下打开时会自动使用表缓存而不是行缓存。

在online模式下打开一个离线视图不会自动打开源表,除非你发布一条tableupdate() 命令。

在以online 模式打开视图后, 使用 tableupdate() 命令来把离线视图中的修改更新到源表。这与从表缓存中或联线视图中更新数据到表中完全一样: 如果发现冲突或规则(字段或表表验证, 主关键字或候选关键字, 或触发器) 违反, tableupdate() 会失败而你可以用getnextmodified() 和 getfldstate() 来确定哪些记录中的哪些字段被修改并处理这些冲突和规则违反。

从离线视图中更新源表不会让视图与源数据相联, 也不会以源表中的数据刷新视图 (例如, 被其它离线视图修改或对源表的直接修改)。

原文转自:http://www.ltesting.net