关于在FOXBASE 中JOIN WITH 和SET RELATION 如何更好的掌握啊?的问题
这两个命令好像跟多数据表格(对不起,6。0版本管DBF文件叫数据表格,而数据库文件DBC是多个DBF文件的集合,跟这叫惯了)的关联有关,具体的使用方法还是请老兄你自己查一下书吧。
注意:要建立关联的两个数据表格文件中一定要有相同的字段(如“职工基本情况。
dbf”和“职工工资发放表。dbf”两个文件中都有“姓名”字段,就可以用“姓名”字段为关键字,建立两个文件的关联)
具体用法如下:
一、JOIN WITH TO [FOR ][FIELDS ]
该命令的作用是按指定的条件将分别在两个工作区中打开的数据表格中的字段有选择地拼接成一个新的数据表格。
例如:在当前工作区中打开了“商品销售信息。dbf”(包含字段:出货单位、货名、数量、单价、总价),在2号工作区中打开了“商品基本信息。dbf”(包含字段:货名、型号、单价、日期),现在要按“货名”字段相同为条件,横向连接生成由“货名”、“日期”、“单价”、“数量”4个字段组成的新数据表格,则输入如下命令:
join with 商品基本信息 to 出货信息 for 货名=B->货名 FIELDS 货名、日期、单价、数量
注意:1、工作区的别名,1号工作区的别名是A,2号工作区的别名是B……,以此类推,在FOXBASE中最多有10个工作区;当然,在打开数据表格较多时,也可以工作区中打开的数据表格名称做为该工作区的别名 。
2、若省略FIELDS选择项,则新数据表格字段依次包括当前表格的所有字段和别名表格中的不同名字段;
3、当找到符合条件的记录时,就将两个记录按指定的字段连接起来,做为新数据表格中的一条记录;若这两个记录有同名字段,连接时取当前表格的字段的值;若当前表格中有MEMO字段,横向连接时必须另行复制新数据表格文件同名的“。
dbt”文件,新表格文件才能打开。
4、如不指定FOR条件,在横向连接时则会根据两个表格中的记录数生成一个M*N(设当前表包含M条记录,另一个表包含N条记录)条记录的新数据表格。
二、SET RELATION TO []INTO ADDITVE
用来建立两个数据表格的关联,使得当一个表格中的记录指针在移动时,被关联表格中的记录指针也作相应移动。
注意:1、当使用关键字表达式时,关键字必须是两个表格文件共有的字段,并且两个表格都已按关键字建立了索引文件;若使用数值表达式时,两个表格按记录号相关联,即表达式为RECNO()
2、该命令多用于与UPDATE ON命令联合使用,对当前数据表格的记录进行更新,用法如下:
Update on FROM REPLACE with [, with ,……] [RANDOM]
仍以上例,要用“商品基本信息”中的“单价”来对“商品销售信息”中的“单价”和“总价”来进行更新,则进行如下操作:
select 2
use 商品基本信息 INDEX 库货名
select 1
use 商品销售信息 INDEX 售货名
update on 货名 FROM 商品基本信息 replace 单价 with B->单价, 总价 WITH 单价*数量。
注:1、“库货名”和“售货名”为假定中已分别为两个表格按“货名”字段建立的索引
2、如果主表格中有多条记录的关键字段值相同,则仅第一条记录与从表关联,也仅该条记录将被更新
关于这几个命令的使用,以上简单作了说明,关键还是要在实际生活中多找些相关的例子建立表格来实际操作一番。
祝你学习愉快!。