foxbase编程技巧
添加时间: 2007-5-13 9:44:41 作者: 计算机等级考试认证参考 阅读次数:78 来源: http://www.d9soft.com
1.正确理解题意.
2.注意数据库的结构,特别是字段的类型.程序中有可能要进行转换.
3.程序前面可加上如下命令: close data, 结束前再加上 close data.
4.如题目要求考生建立一数据库,以后在程序中需将数据存入其中,则若要求先追加一条空白记录时,在编程前先用append blank
添加一条空白记录,以后在程序中打开该数据库直接将数据存入其中即可.(用replace 命令). 否则要在程序中先用 append blank
添加空白记录后才能存入数据.如果这样,则运行一次程序就会产 生若干条记录,若运行(调试)不止一次,结果将是错误的(产生多条记录).
方法一: 调试全部通过后,在点提示符后打开该库执行 zap 清除记录再执行程序一次即可(不能多次执行).
方法二: 在程序中首次打开该库时即用命令 zap.
5.在题目中若要求先将某库复制成另一新库中,对新库进行修改操作时,此时必须要先打开新库,否则有可能破坏原有数据库,在编程前最好将所有数据库先复制一个备份.
6.若内存变量与数据库变量同名时,内存变量前必须加上m->.
如 replace abc with m->abc
7.若需同时用到多个数据库时,应用 select 命令选择工作区,此时应注意:
(1)记住哪一个区打开哪一个数据库,其字段各是哪些.
(2)当前使用哪一个区,使用另一个数据库时必须转到该区.
如: sele 1
go top
do while .not.eof()
.
.
sele 2
replace ......
.
.
sele 1 <---注意必须有此句
skip
enddo
(3)一般应先进行关联: set rela to 字段 into 工作区号.
8.某些操作会移动指针,当做完这些操作后又要对该库全部记录进行另一种操作时,记住先将指针移回前面.
如: use 数据库
count to abc for ..... ( 或 index on ... )
go top <---切记加上此句
do while .not.eof()
....
skip
enddo
9.进行物理关联时,应特别注意条件.
如: join with b to 新库名 for 姓名=b->姓名.and.b-> 职称 ="工程师"
另外,若有多条记录姓名相同时,以上结果也是错的,此时应用
join with b to 新库名 for 编号=b->编号.and.b->职称="工程师"
10.程序调试通过后,应打开有关数据库验证结果.如题目要求将A库各部门的教授,
讲师等职称人数依次存入B库中,执行程序后打开B库验证所有人数数据之和应等于A库的记录数,否则不正确.再如,二个库进行物理联接后,生成后新库的记录数必须少于或等于二个库中最少的记录数.
11.程序中若用到程序调用 do 过程名,在调用之前必须打开过程文件:set proeadure to <过程文件名>,程序结束前关闭:set procedure to 或 close proeadure .
若程序运行中途出错,则必须在点提示符后执行:set procedure to
或 close proeadure 方能继续编辑.
12.学会找出规律:如对编号为 BH1001,BH1005,BH1009......的记录进行操作,其条件
可表示为: mod(val(substr(编号,4))-1,4)=0
13.注意命令的顺序有时不能完全按题目要求的顺序来编.
例如:将库中工资不足200元的人员加50元工资,然后统计加了工资的人数.
错误: replace all 工资 with 工资+50 for 工资<200
count to abc for 工资<200
正确: count to abc for 工资<200
replace all 工资 with 工资+50 for 工资<200
14. 正确使用函数,如:
当前年份,月份,和日数应分别表示为:
正确用法: year(date()) month(date()) day(date())
错误用法: year() month() day()
85年以后参加工作的应表示为(设工作日期为日期型变量):
正确用法: year(工作日期)>=1985
错误用法: year(工作日期)>=85
参加工作10年以上的应表示为:
正确用法: year(date())-year(工作日期)>=10
错误用法: year()-year(工作日期)>=10
上下文章:
上一篇文章: FOXBASE+程序设计的窍门 下一篇文章: 控制串口通信的解析实例
相关文章:

