本章介绍create()函数的多种用法。
描述:
创建空序表
语法:
create(Fi,…)
备注:
产生以Fi,…为字段的空序表
参数:
Fi |
字段名 |
返回值:
空序表
示例:
|
A |
|
1 |
=create(id,name,gender) |
|
描述:
创建含有键的空序表
语法:
create(#Fi,…)
备注:
产生以Fi,…为字段的空序表,带有#的字段名被认为是键,暂不能直接生成时间键
参数:
Fi |
字段名 |
返回值:
空序表
示例:
|
A |
|
1 |
=create(#id,#name,gender) |
id ,name 两个字段为键。 |
描述:
用文件创建组表
f.create(C,…;x)
备注:
用组表文件f创建组表,C为组表的列,C前带#表示维,维及其前面的所有字段必须有序。当f是文件组时生成复组表,x是分表表达式。
参数:
f |
组表文件或文件组 |
C |
组表的列 |
x |
分表表达式 |
选项:
@u |
不压缩,缺省将压缩 |
@r |
生成行存文件,缺省用列存,行存模式的组表不支持使用多路游标 |
@y |
文件已存在时强制重新创建,缺省中断计算并弹出错误信息 |
@p |
按第一个字段作为分段键 |
@v |
列存方式下,数据维护时对比列是否纯,并保存数据类型 |
返回值:
组表或文件组
示例:
|
A |
|
1 |
=file("employee1.ctx") |
生成组表文件employee1.ctx |
2 |
=A1.create(#EID,NAME,GENDER) |
创建组表employee1.ctx的基表,EID、NAME、GENDER为基表的列名,其中EID表示维 |
3 |
=connect("demo").cursor("select EID,NAME,GENDER,SALARY from employee where GENDER='M' order by SALARY") |
|
4 |
=connect("demo").cursor("select EID,NAME,GENDER,SALARY from employee where GENDER='F' order by SALARY") |
|
5 |
=[A3,A4].mcursor() |
返回多路游标 |
6 |
=file("emp.ctx":[1,2]) |
生成文件组,包含的文件分别为1.emp.ctx、2.emp.ctx |
7 |
=A6.create@y(#EID,NAME,GENDER,SALARY;if(GENDER=="F",1,2)) |
创建复组表,if(GENDER=="F",1,2)为分表表达式,使用@y选项,文件已存在时强制重新创建 |
8 |
=A7.append@i(A5) |
将多路游标A5中的数据追加到复组表A7中,A5的每一路与A7的分表一一对应 |
9 |
=file("1.emp.ctx").open().cursor().fetch() |
查看分表1.emp.ctx中的数据 |
10 |
=file("2.emp.ctx").open().cursor().fetch() |
查看分表2.emp.ctx中的数据 |
|
A |
|
1 |
=file("CITES.ctx") |
生成组表文件CITES.ctx |
2 |
=A1.create@p(STATEID,#CID,NAME,POPULATION) |
创建组表CITES.ctx的基表,使用@p选项将第一个字段STATEID作为分段键;选项缺省则将维字段CID作为缺省字段 |
描述:
复制排列P的数据结构,以此产生一个新的空序表
语法:
P.create()
备注:
如果P有键,则同时复制键。
参数:
P |
排列 |
返回值:
新空序表
示例:
Ø 由排列产生
|
A |
|
1 |
=demo.query("select top 1 * from DEPARTMENT") |
|
2 |
=A1.to() |
生成排列 |
3 |
=A2.create() |
产生一个空序表,与A2数据结构一致 |
Ø 复制键
|
A |
|
1 |
=demo.query("select top 1 * from DEPARTMENT ") |
|
2 |
=A1.keys(DEPT) |
|
3 |
=A1.to() |
生成排列 |
4 |
=A3.create() |
产生一个空序表,与A3的数据结构一致,且同时复制了键 |
描述:
复制序表T的数据结构,以此产生一个新的空序表
语法:
T.create()
备注:
如果T有键,则同时复制键。
参数:
T |
序表 |
返回值:
新空序表
示例:
Ø 由普通序表产生
|
A |
|
1 |
=demo.query("select top 1 * from DEPARTMENT") |
|
2 |
=A1.create() |
产生一个空序表,与A1数据结构一致 |
Ø 复制键
|
A |
|
1 |
=demo.query("select * from DEPARTMENT ") |
|
2 |
=A1.keys(DEPT) |
|
3 |
=A1.create() |
产生一个空序表,与A1序表的数据结构一致,且同时复制了键 |
描述:
语法:
T.create(f;x)
备注:
用组表T的数据结构创建新的组表文件f,包括T的附表。f是文件组时候创建成复组表。
参数:
T |
组表 |
f |
组表文件或文件组 |
x |
整数,分表表达式 |
返回值:
组表
示例:
|
A |
|
1 |
=create(k1,v1).record([1,10,2,20]).cursor() |
返回游标,数据内容如下: |
2 |
=create(k1,k2,v2).record([1,11,111,2,22,222]).cursor() |
返回游标,数据内容如下: |
3 |
=file("ctb.ctx").open() |
打开组表文件,该组表中含有名为table2的附表 |
4 |
=A3.create@y(file("ctbCp.ctx")) |
根据组表ctb.ctx的数据结构创建新的组表文件ctbCp.ctx,同时创建附表 |
5 |
=A4.append@i(A1) |
将A1游标中的数据追加到组表ctbCp.ctx的基表中 |
6 |
=A4.attach(table2) |
打开组表的附表table2 |
7 |
=A6.append@i(A2) |
将A2游标中的数据追加到ctbCp.ctx的附表table2中 |
描述:
复制记录r的数据结构,以此产生一个新的空序表
语法:
r.create()
备注:
如果r有键,则同时复制键。
参数:
r |
记录 |
返回值:
新空序表
示例:
Ø 由普通记录产生
|
A |
|
1 |
=demo.query("select top 1 * from DEPARTMENT") |
|
2 |
=A1(1).create() |
产生一个空序表,与A1(1)记录的数据结构一致 |
Ø 复制键和
|
A |
|
1 |
=demo.query("select * from DEPARTMENT ") |
|
2 |
=A1.keys(DEPT) |
|
3 |
=A1(1).create() |
产生一个空序表,与A1(1)记录的数据结构一致,且同时复制了键 |