一。建立表间连接:有时需要将不同表的内容按某种条件重新组成一个新表,可用连接命令 join来实现该功能。Join命令实现由两个表,即当前工作表和另一个工作区中的表(由别名指定),依据条件和指定的字段建立新表。执行该命令时,先将当前表的记录指针指向首记录,然后在别名表中依据指定条件搜索,凡满足条件的别名表的记录都各自与当前表的首记录组成一个新记录,并记入新文件中。随后将当前表的指针移向下一条记录,重复上面的搜索并组成新记录记入新表中,直到最后完成。
格式:join with 表别名 to 新表名 [for 条件] [fields 字段名表]
例:将职工档案。dbf和工资情况。dbf用连接命令生成一个新表,要求新表中包括姓名,出生时间,奖金和工资
select 2
use 工资情况 alias bm
browse &&如图22
select 1
use 职工档案
browse &&如图21
join with bm to xinbiao for 编号=bm.编号 fields 姓名,出生时间,bm.奖金,bm.工资
select 3
use xinbiao
browse &&如图24
close database &&关闭数据库,包括其中的表
图22
图21
图24
Visual FoxPro基础教程完整版二。表的更新操作:商业中常需要根据商品的销售情况及进货情况不断更新库存商品的数量和金额,在vfp中,使用update命令来处理,命令格式为:
update on 关键字段 from 数据源表 replace 被更新字段 with 表达式
说明:(1).更新命令是用数据源表去更新当前工作表,即用表达式的值去更新被更新字段的值。
(2).关键字段必须是两个表的公共字段,且两个表都按此关键字进行了排序或索引,且索引随表打开。
(3).引用数据源表的字段时须用别名指定。
(4).该命令执行过程:对当前表(被更新表)的各条记录依其关键字值找到数据源表中相应记录,然后用表达式的值去更新相应字段内容。若在数据源表中没有与此记录相应的记录,则当前表的这条记录就不做更新操作。若当前表的全部记录都进行了上述更新操作,则此命令的更新操作也就完成了。例:新建一个表xy.dbf,结构如下:xy(编号 c5,工资 N6.1),输入几条记录然后用xy.dbf的值去更新"工资情况。dbf"的"工资"字段的内容。
1.按要求建立xy.dbf的表结构,并输入5条记录,如图25
图25
close database &&先把数据库及其中的表关闭,我们从头开始。
use 工资情况
browse &&更新前的情况,重点看工资字段的值,如图22
use xy
browse &&图25
index on 编号 tag bh3 &&依据编号建立索引,索引名为bh3
use
select 1
use xy order tag bh3 alias bm1 &&在1号工作区打开xy表同时打开bh3索引,表别名定为bm1
select 2
use 工资情况 order tag bh2 &&上节课已为工资情况表按"编号"建立索引,名为bh2
update on 编号 from bm1 replace 工资 with 工资+bm1.工资 &&将xy表中的工资字段的值加到当前表中
browse &&更新后的"工资情况"表,如图26
use图26