
| 出版日期:1999-08-09 总期号:847 本年期号:57 |
|
vfp常见错误及处理方法
董晓燕 vfp作为一种高级计算机语言已经得到广泛应用,是一种较流行的应用软件,但在使用过程中常常会出现一些初学者常犯的错误,在此笔者将在使用过程中碰到的常见错误及处理方法写出以飨读者。 如何消除数据库的只读状态 在打开数据库时,有时我们会发现在数据库名的右边会出现“(只读)”。此时,如果用户试图对数据库中的数据库表进行各种操作,如修改结构、输入信息等操作时,它将拒绝执行,并提示用户此数据库处于只读状态,无法输入新的记录或者是进行修改结构的操作。用户也无法将此数据库中的数据表移出或移入。此时用户若通过资源管理器观察此数据库文件的属性会显示,此文件的属性并非只读,而是处于读写状态。碰到这种情况说明用户同时打开的数据文件太多了,只有关闭其它的数据库文件之后才可以解除此数据库的只读状态。解决的办法有:一,在命令窗口中输入下列命令:close all(关闭所有的文件、项目、数据库)。然后重新打开此数据库,一般可以解除此数据库的只读状态。如果这种方法仍然不能改变数据库的只读状态,那么可以采用第二种方法:先关闭数据库,然后退出vfp,之后重新进入vfp,此时用户无论打开任何一个数据库,它们都不会处于只读状态了。由此可以看出,在vfp中我们能够打开的文件是有一定限度的,不能无休止地打开许多文件而不关闭它们,这样会带来许多不必要的麻烦。 设计输出报表时对数据表中的字段的要求及变量的使用 报表的设计输出是vfp中几个重要的功能之一,我们经常要用到,然而在使用起来有时也常常会出现一些小小的麻烦。例如:在一个数据库中有两个表和基于这两个表的视图,它们的结构如下:
如果基于此视图作一个报表,报表的内容要求如下:
在欠款一栏中我们需要设定一个数值型变ssk,即欠款=应收款-ssk,其中ssk是同一合同中实收款之和。细心的用户会发现如果应收款和实收款均为货币型字段,那么在报表的欠款栏里会出现****,即欠款计算不出来。而报表中的其它四项内容都是正常的,产生这种现象的原因只有一个,那就是货币型字段不能与数值型的变量ssk进行加减运算,这是初学者最常犯的错误,即试图将不同类型的变量进行运算。解决的方法很简单,只要将数据表中应收款和实收款的字段类型改变为数值型,然后更改视图即可。由此可见,对于需要进行数学运算的字段我们应将其定义为同一种数据类型才不会出错。 表单运行中文本框内容不随记录的改变而改变的原因 在表单的设计中常用的有两种方法:一种方法是先建立数据环境,然后用鼠标直接将相应的字段拖入表单中。用这种方法向表单中添加的对象将直接与相应的数据表或视图相关联,表单建立后,运行此表单,则表单中各个对象都有相应的值。且表单中各对象的内容随着记录的不同而不同。另一种方法是利用表单控制工具栏向表单中添加控制。此时用户并没有将表单中的控制与相应的字段相关联,因此,此时运行表单时,表单中的对象是没有内容的。我们可以通过以下操作来完成控制与表字段之间的关联:首先选中表单中已有的控制,然后单击属性中的“激活表单生成器”按钮,在表中选取“值”项(如图1所示),然后选择字段,如果没有字段可选,说明还没有选中表,那么我们可以用鼠标先选表,然后选字段,最后,按确定按钮,使控制与相应的字段相联结。用这种方法可以实现表单中控制与相应表中字段的关联,可避免表单中出现空对象的现象发生。
图1 |
|||||||||||||||||||||||||||||||||||||||||