内表

阅读(804) 标签: 内表, monory, len, keys, row, find, index,

实表中的数据可以读入内存中成为内表,类似序表一样使用,如:

 

A

1

=file("D:/file/dw/employees.ctx")

2

=A1.create()

3

=A2.memory(;right(Name,6)=="Garcia")

4

=A3(4)

A2中,打开组表employees.ctx中的实表etable。在A3中,使用函数T.memory(C,…;w)从内表T中筛选出满足条件w的数据,生成姓为Garcia的员工数据的内表。内表在集算器中可以类似序表一样直接查看,A3中得到结果如下:

类似普通的序表,内表中的记录可以直接根据序号访问,如A4中得到内表中的第4条记录如下:

 

除了用实表表生成内表,还可以用cs.memory()函数,用游标生成内表,如:

 

A

1

=file("D:/file/dw/employees.ctx")

2

=A1.create()

3

=A2.cursor(EID,Dept,Name; right(Name,6)=="Garcia")

4

=A3. memory()

5

=A4.len()

A3中,从实表中选出StateID11的员工数据生成游标,在A4中,直接用游标生成内表如下:

由于游标中并未包含实表的所有字段,内表中也只会包含游标中的字段。在A5中,用T.len() 函数,可以得到内表的记录数:

 

内表可以用T.keys(K…) 函数设定主键,设定主键后,可以使用T.find(k)k.row(T)函数查找记录,如:

 

A

1

=file("D:/file/dw/employees.ctx")

2

=A1.create()

3

=A2.memory(;right(Name,6)=="Garcia")

4

>A3.keys(EID)

5

=A3.find(8889)

6

=8889.row(A3)

由于内表的主键仍然是EIDA4中的表达式也可以不再重新设置,A5A6中根据主键值8889,查找到对应的记录,得到的结果是相同的,如下: