Foxpro APP编程经验二则

Author: 广西 粱华 Date: 1996-10-04

        以下为两则编程体会,希望对你有所帮助:
        一、DBF文件(数据库)无法写入问题的解决
        首先使用PROJECT建立了一个名为LHPRJ的PROJECT,作为生成“.APP”文件的基础然后使用“BUILD APP”生成LHPRJ.APP文件,同时选择“DISPLAY ERRORS”以观察生成过程中的错误。
        但在运行时发现数据库文件成了只读文件,其记录内容和结构都不允许修改。退出LHPRJ.APP后返回到FOXPRO,“.DBF”文件又恢复其可读写的特性。怀疑是没有正确打开数据库,使用“USE.DBF EXCLUSIVE”和“USE.DBF SHARED”,重新生成.APP文件,但错误依旧。
        仔细阅读FXOPRO关于APP的联机帮助文档,发现其提及的组成文件并不包括数据库文件。去掉PROJECT中的数据库,重新生成.APP。问题得到了解决。
        原来把数据库集成到.APP中去以后,当你企图对数据库写入时,变成了要修改APP文件,显然系统不会允许对一个正在运行的程序的内容进行修改,结果导致数据库文件成了只读(READ-ONLY)文件,不能写入。
        二、“MEMO file is missing/valid”(备注文件丢失)错误的处理
        利用FOXPRO的PROJECT和BUILD APP建立了APP文件后,将所有文件包括主APP文件和辅助的数据库文件拷贝到另一台有同样的FOXPRO环境的计算机上运行,碰到 “MEMO file missing/valid”(MEMO文件找不到或该文件无效)的错误。
        在带源程序的计算机上运行,没有发现问题。
        检查APP的结构发现它,并没有调用MEMO文件。
        使用FOXPRO的TRACE,发现错误行是在打开一个自定义的帮助数据库时发生的,检查数据库结构,发现使用了MEMO字段。在源程序的计算机上查找到和该数据库同时生成的.FPT文件,将它拷贝过去,问题得到解决。
        原来MEMO字段和别的字段不同,它的内容并不保存在数据库文件(.DBF)中,而是单独存储,以“.FPT”的扩展名存在。这样,单独拷贝带有MEMO字段的数据 瘵会碰到“找不到MEMO文件”的错误。