【问题标题】:How to make a Visual FoxPro form (SCT) "forget" about an old DBF?如何让 Visual FoxPro 表单 (SCT) “忘记”旧的 DBF?
【发布时间】:2020-02-24 15:08:05
【问题描述】:

我从我的 VFP 项目中删除了一些 DBF,但是当我尝试打开我的表单进行编辑时,其中一个仍然导致错误。我删除了代码中对 DBF 的所有引用(从表单对象/方法中),并且 DBF 不作为数据表包含在项目中。

如果我尝试在项目外部自行打开 SCT 文件,也会出现此错误。错误:

我在文本编辑器中打开了 SCT 文件并找到了已删除 DBF 的条目,但我不确定该条目实际上是什么或删除它的正确方法是什么。我可以删除第 7 行和第 8 行吗?

为什么/如何首先创建它,为什么它会一直存在?

【问题讨论】:

    标签: visual-foxpro


    【解决方案1】:

    您应该能够通过在 VFP 中打开表单来摆脱它们

    然后右键单击表单开放区域中的任意位置并选择数据环境。它将列出与表单关联的任何可能的表/视图/关系实体。只需单击每个项目并删除它们并保存表单。这应该让你很高兴。

    另外,

    在 VFP 中,表单和类只不过是带有更改后缀的 .DBF 文件

    .SCX = .DBF
    .SCT = .FPT
    .VCX = .DBF
    .VCT = .FPT
    

    另外,项目和报告是一回事……

    .PJX = .dbf
    .PJT = .fpt
    .FRX = .dbf
    .FRT = .fpt
    

    所以,既然你知道它是一个数据库文件,你可以直接在 VFP 中打开

    use MyForm.scx
    browse normal nowait
    

    现在,查看行并双击“类”列。您可能在第二行和第三行中有数据环境和游标引用,将类内容显示为 “数据环境”和“光标”。

    你也可以

    browse normal nowait for atc( "dataenvironment", class ) > 0 OR atc( "cursor", class ) > 0
    

    您可以删除这些记录。

    表之间也可能存在“关系”链接,但就其本身而言,从设计器中编辑数据环境是最安全的方式。屏幕和类版本 .dbf 表中有很多有趣的东西。

    反馈

    在设计表单时,您可以向表单添加任何表格和关系。这可以防止您在表单加载之前手动打开表格、设置索引顺序、设置关系。直到 1993 年 VFP 3 出现时,我个人还没有建立这种方式。我更喜欢编码开放表。这允许可自定义的路径设置,例如支持多个“公司”,例如在会计应用程序中。无论如何,可能不是你所参与的,但很高兴它对你有用。

    【讨论】:

    • 谢谢!从数据环境中删除表是可行的,浏览 SCX 文件也非常有用!数据环境中只有一个其他游标(即使我在项目中使用了多个表/游标)。删除该光标是否安全?它来自我仍在项目中使用的表。我仍然不确定它们是如何进入数据环境的,或者它们在那里服务的目的。
    • @billygarrison,请参阅修改后的帖子和反馈。
    猜你喜欢
    • 2023-01-05
    • 1970-01-01
    • 2013-11-03
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多