foxpro 多个本地数据

发表于:2007-07-02来源:作者:点击数: 标签:
假设为一个拥有12个办公室的客户写一个应用程序。每一个办公室有它们自己的数据表拷贝, 但总办公室的文件必须包含各办公室的完整的数据以便进行数据维护。每月一次, 各办公室将他们的文件送到总办公室并使用一个复杂的合并程序将各办公室的数据合并在一起。

假设为一个拥有12个办公室的客户写一个应用程序。每一个办公室有它们自己的数据表拷贝, 但总办公室的文件必须包含各办公室的完整的数据以便进行数据维护。每月一次, 各办公室将他们的文件送到总办公室并使用一个复杂的合并程序将各办公室的数据合并在一起。要实现该方法的程序是很难编写的; 它必须查看各办公室数据的添加,删除和修改并将其反映到主办公室的文件中去。

这种情形在VFP5中可以通过离线视图方便地实现。如果我今天来写该程序,可能我会采用以下方案:

  • 各办公室都拥有一个数据库和离线视图表的拷贝, 并可以在离线视图中输入数据.离线视图存放在与数据库相同的目录中以保存数据的一致性。
  • 在需要时, 各办公室将它们的离线视图文件送至主办公室。这些文件放在不同的子目录中, 每一办公室一个目录。
  • 一次一个目录地, 各办公室的离线视图文件拷贝到主办公室的并复盖主办公室的视图文件。然后在online 模式下打开视图文件并用 tableupdate() 将视图中数据的修改提交到源表。进行该处理后各办公室子目录下的离线视图文件将被删除。
  • 刷新子办公室的视图, 让视图离线, 然后再联线, 并将离线视图文件送回各办公室。当然, 这意味着在办公室的数据输入在他们的文件送回主办公室前不能更新。然而, 由于该处理可以在夜间自动运行, 这不会是大问题。

当你解压演示该技术的源代码压缩文件时,会建立一个 MULTIPLE 目录。如果VFP 没有安装在与这些文件相同驱动器中的VFP5中, 修改 SETUP.PRG 文件并按实际修改lcDataDir 中的路径定义。运行 SETUP.PRG 来在MULTIPLE目录中建立一个VFP 的样板数据库文件TESTDATA 的一个副本,并将它们复制到以下两个目录中: OFFICE1 和 OFFICE2。并建立一个叫做LV_CUSTOMER的离线视图。

在运行SETUP后, 运行 NEWRECS.PRG。这会添加新记录到主办公室(CUST_ID 000) 、办公室1 (CUST_ID 111), 和办公室2 (CUST_ID 222)的离线视图中。在添加了各记录后, 会显示一个浏览窗口,这样 你可以看见新记录。在运行完NEWRECS 后, 运行 CONSOLID.PRG。该程序合并各视中的数据变化到主办公室的CUSTOMER 表,并在一个流览窗口中显示该表的数据以便你查看所有的修改。

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