本章介绍memory()函数的多种用法。
描述:
用游标生成内表
语法:
cs.memory(K,…)
备注:
用游标cs生成键为K的内表。
参数:
K |
键,可省略 |
cs |
游标 |
返回值:
内表
示例:
|
A |
|
1 |
=demo.cursor("select EID,NAME,GENDER,SALARY from EMPLOYEE where EID<10") |
返回取数游标 |
2 |
=A1.memory(EID) |
返回键为EID的内表 |
描述:
用集群游标生成集群内表
语法:
cs.memory(K,…)
备注:
用集群游标cs生成和cs一样分布且键为K的集群内表。cs为集群多路游标时,多路按次序加载。
参数:
K |
键,可省略 |
cs |
集群游标 |
返回值:
集群内表
示例:
|
A |
|
1 |
=file@n("D:/test0.ctx","169.254.121.62:8281") |
打开复写文件 |
2 |
=A1.create() |
创建复写类型集群组表 |
3 |
=A2.attach(table) |
取出集群附表table |
4 |
=A3.cursor(NAME,GENDER;EID<6) |
筛选集群附表table中EID<6的NAME,GENDER列后返回成游标 |
5 |
=A4.memory(GENDER) |
集群游标生成键为GENDER的集群内表 |
描述:
使用本地内表拼出集群内表
语法:
memory(h,V)
备注:
用节点机序列h上的本地内表V拼成集群内表,用全局变量代替节点机种的内表。
参数:
h |
节点机序列 |
V |
内表全局变量 |
返回值:
集群内表
示例:
生成全局变量:
|
A |
|
1 |
=file@0("test1.ctx",["192.168.31.72:8281","192.168.31.72:8291"]) |
打开集群文件 |
2 |
=A1.create() |
打开集群组表 |
3 |
=A2.memory(;;arg1) |
集群组表生成全局变量集群内表arg1 |
|
A |
|
1 |
=memory(["192.168.31.72:8281","192.168.31.72:8291"],arg1) |
本地内表arg1拼出集群内表 |
2 |
=A1.cursor().fetch() |
|
描述:
用实表生成内表
语法:
T.memory(C,…;w)
备注:
将实表T中的数据经过过滤条件w过滤之后读入内存中生成列为C的内表,内表可像序表一样使用。当省略C列不省略w过滤条件时, w前面的分号不可省略。实表中如果C列带#则生成内表后C列作为T的键。
参数:
C |
列名,可省略,缺省读入全部列 |
w |
过滤条件,缺省不过滤 |
T |
组表的实表 |
返回值:
内表
示例:
|
A |
|
1 |
=file("D:\\ employees.ctx") |
employees为已存在的组表文件 |
2 |
=A1.create() |
打开组表 |
3 |
=A2.attach(t1) |
返回组表上已存在的附表t1 |
4 |
=A2.memory() |
用基表全部列生成内表 |
5 |
=A2.memory(EID,Dept,Name;EID<5) |
取基表的部分列并筛选出EID<5的数据生成内表 |
6 |
=A3.memory() |
取附表全部列生成内表 |
描述:
用集群实表生成集群内表
语法:
T.memory(C,…;w;V)
备注:
用集群实表T生成集群内表,T必须有维,用来记录分段界值便于寻找;有参数V时,表示在进程中生成全局变量V来保存数据,再次生成集群内表时若V已经存在且不空则不重读。
参数:
C |
列名,可省略,省略读入全部列 |
w |
过滤条件,缺省不过滤 |
V |
全局变量 |
T |
有维的集群组表的实表 |
返回值:
集群内表对象
示例:
|
A |
|
1 |
=file@0("emp1.ctx",["192.168.0.116:8281","192.168.0.129:8281"]) |
打开复写文件 |
2 |
=A1.create() |
创建复写类型集群组表 |
3 |
=A2.attach(t1) |
取出集群附表t1 |
4 |
=A3.memory(NAME,GENDER;EID<5;arg1) |
通过表t1生成列为NAME,GENDER的集群内表,筛选条件为EID<5,并且在节点机上生成全局变量arg1 |