cs.joinx()

描述:

游标与可分段集文件外键式连接

语法:

cs.joinx(C:…,f:K:…,x:F,…;…;…;n)

备注:

用游标cs中的字段C,匹配可分段集文件f的键K找到相应记录,然后拼接上该记录的表达式x作为字段F添加到cs中形成新游标匹配不上外键的记录,字段值缺省填写为null fK有序。

选项:

@i

外键匹配不上的,删除此外键的整条记录

@o(F;)

原记录整个作为字段F生成新记录,x可以是~,表示T的整条记录

@d

没有x:F参数时,做与@i相反的过滤动作

@q

cs数据量不大或是序列时,有序匹配加快速度

@qc

cs对第一套C:…有序时,可加快速度

@u

不保持cs的原次序,可加快速度

参数:

cs

游标/多路游标

C

游标cs的外键

f

集文件

K

f的键

x

f的字段表达式

F

表达式x的字段名

n

缓存区行数

返回值:

游标

示例:

 

A

 

1

=demo.cursor("select EID,NAME,DEPT,SALARY from

EMPLOYEE where EID<10 order by  EID" )

返回取数游标,数据内容如下:

2

=file("D:\\joinx.btx")

返回集文件,文件中数据如下:

3

=A1.joinx(EID,A2:EMPLOYEEID,BONUS+1:SALARY1)

常规连接,匹配不上的外键的用null

4

=A3.fetch()

5

=A1.joinx@i(EID,A2:EMPLOYEEID,BONUS+1:SALARY1;5)

匹配不上的外键删除整条记录

6

=A5.fetch()

7

=A1.joinx@i(EID,A2:EMPLOYEEID;5)

@i选项中没有x:F参数时,结果如下

8

=A7.fetch()

9

=A1.joinx@o(F1;EID,A2:EMPLOYEEID,BONUS+1:SALARY1;5)

原记录整个作为字段F1

10

=A9.fetch()

11

=A1.joinx@o(F1;EID,A2:EMPLOYEEID,~:SALARY1;5)

使用~代替x参数

12

=A11.fetch()

13

=A1.joinx@d(EID,A2:EMPLOYEEID;5)

没有x:F参数时,保留匹配不上的外键记录

14

=A13.fetch()

15

=A1.joinx@q(EID,A2:EMPLOYEEID,BONUS+1:SALARY1;5)

有序的读出f相应记录匹配

16

=A15.fetch()