create()

阅读(705) 标签: create,

本章介绍create()函数的多种用法。

create()

描述:

创建空序表

语法:

create(Fi,…)

备注:

产生以Fi,…为字段的空序表

参数:

Fi

字段名

返回值:

空序表

示例:

 

A

 

1

=create(id,name,sex)

create( # F i ,… )

描述:

创建含有键的空序表

语法:

create(#Fi,…) 

备注:

产生以Fi,…为字段的空序表,带有#的字段名被认为是键

参数:

Fi

字段名

返回值:

空序表

示例:

 

A

 

1

=create(#id,#name,gender)

id ,name 两个字段为键。

f.create()

描述:

打开已存在的组表

语法:

f.create()

打开不带密码的组表

f.create(;;p)

打开加密的组表

备注:

打开已存在的组表。当p是写入密码时可以读取组表,更新组表,增加新附表等;p为读取密码时只读,不能操作组表。当加密组表有读写两个密码时,只需按照需要写其中一个密码即可。f可以是文件组,文件组密码必须相同。

参数:

f

已存在的组表文件

p

写入密码/读取密码

返回值:

组表/集群基表对象

示例:

 

A

 

1

=file("D:\\employee2.ctx")

 

2

=A1.create(#EID,NAME,GENDER;;"@!*123":"12")

生成加密组表

3

=file("D:\\employee3.ctx")

 

4

=A3.create(#EID,NAME,GENDER)

生成不加密组表

5

=A3.create()

打开不加密的组表文件

6

=A1.create(;;"12")

用读取密码读取已存在写/读加密组表

7

=A1.create(;;"@!*123")

用写入密码打开已存在写/读密码的加密组表

8

=file(["D:\\emp2.ctx","D:\\emp1.ctx","D:\\emp1.ctx"])

不加密文件组

9

=A8.create().cursor().fetch()

缺省有序归并

10

=A8.create().cursor().fetch()

增加选项@o不做有序归并

 

f.create( C :b 1 ,…; K :b 2 ;x;pw:pr)

描述:

用文件创建组表的基表

语法:

f.create(C:b1,…;K:b2;x;pw:pr)

备注:

用文件f创建由列C组成组表的基表,其中可以使用分区函数x将数据分成多个区,分段键K可以防止把维值相同的列拆成多个段。

参数:

f

本地文件

C

基表的列,C前带#表示维,维必须在前面,并且基表中的记录对于维必须是有序的,维可以有多个

b1

排号键的长度,不超过8的整数。可以省略,省略时K不是排号类型

K

分段键,若是排号时则用前b2个字节作为分段键

b2

字节数,不超过8的整数,可以省略

x

基于首维的分区函数,返回整数,有x时将生成复组表

pw

写入密码,可省略;当写入密码省略时,读取密码必须省略

pr

读取密码,可省略;当写入密码不省略时,读取密码可省略

选项:

@u

不压缩,缺省将压缩

@r

生成行存文件,缺省用列存,行存模式的组表不支持使用多路游标

@y

文件已存在时强制重新创建,缺省中断计算并弹出错误信息

返回值:

基表

示例:

 

A

 

1

=file("D:\\employee1.ctx")

 

2

=A1.create(#EID,NAME,GENDER)

创建无排号键的基表employee1EIDNAMEGENDER为基表的列名,其中EID表示维

3

=file("D:\\employee2.ctx")

 

4

=A3.create(#EID:3,NAME,GENDER;EID:2)

创建以EID为排号键,EID的前两个字节为分段键的基表,且排号键的长度是3

5

=file("D:\\employee3.ctx")

 

6

=A5.create(#EID,NAME,GENDER;;;"@!*123":"12")

创建带有写:读密码的基表

7

=file@w("emp1.ctx":[1],["192.168.0.131:8281"])

 

8

=A1.create(#EID,NAME,GENDER)

创建不加密的集群基表

9

=A1.create(#EID,NAME,GENDER;;;"@!*123":"12")

创建带有写:读密码的集群基表

10

=file("emp1.ctx":[1],["192.168.0.116:8281"])

从节点机"192.168.0.116:8281"1区读取组表文件emp1.ctx,生成集群文件

11

=A10. create(#EID,NAME,GENDER)

创建集群基表

12

=A1.create@y(#EID,NAME,GENDER)

强制重新创建,无选项@y时报错

13

=file("emp2.ctx":[1,2,3])

返回分区1/2/3下的组文件

14

=A13.create(#EID,NAME,GENDER,DEPT;;EID%3+1)

生成复组表,其中EID%3+1返回整数1/2/3

15

=file("test1.ctx")

 

16

=A15.create(#ID:4,City,School,SID;ID:2)

数据中的ID字段使用了4个字节的排号类型数据,其中第1个字节记录了City,第2个字节记录了School,第3,4两个字节记录了SID,此时设置了分段键为前2个字节,分段读取数据时按School来分段

17

=mysql.cursor("select ID,City,School,SID from stu")

 

18

>A16.append(A17)

 

19

=A15.create().cursor(;;10:200).fetch()

20

=A15.create().cursor(;;11:200).fetch()

比较这两段相邻的数据,可以发现第10段的结尾和第11端的开端数据分属于两个不同的School,说明School相同的列没有被分成多段

f.create(C:b 1 ,…;K:b 2 ;x;pw:pr)

描述:

用集群文件创建集群组表的基表

语法:

f.create(C:b1,…;K:b2;x;pw:pr)

备注:

用集群文件f创建由列C组成集群组表的基表。当创建可写的集群表时,仅用于维护;可执行attach, index, reset, append, update, delete等方法;在空数据的集群文件中使用append时必须先追加集群游标。

参数:

f

集群文件

C

基表的列,C前带#表示维,维必须在前面,并且基表中的记录对于维必须是有序的,维可以有多个

b1

排号键的长度,不超过8的整数。可以省略,省略时K不是排号类型

K

分段键,若是排号时则用前b2个字节作为分段键

b2

字节数,不超过8的整数,可以省略

x

分布函数,用于写入时不可省略

pw

写入密码,可省略;当写入密码省略时,读取密码必须省略

pr

读取密码,可省略;当写入密码不省略时,读取密码可省略

选项:

@u

不压缩,缺省将压缩

@r

生成行存文件,缺省用列存,行存模式的组表不支持使用多路游标

@y

文件已存在时强制重新创建,缺省中断计算并弹出错误信息

返回值:

集群表对象

示例:

 

A

 

1

[192.168.31.72:8281]

 

2

=file("salespart.ctx":[1], A1)

 

3

=A2.create()

 

4

=A3.cursor()

产生集群游标

5

=file@w("salespart1.ctx":[1],["192.168.31.72:8281"])

 

6

=A5.create(#EID,Name,OCount;;;"@!*123":"12")

创建带有写:读密码的集群表

7

>A6.append(A4)

追加集群游标

8

=A6.cursor().fetch()

 

9

=file("EmpCTX.ctx":[2],A1)

EmpCTX.ctx中有字段EIDName,Dept,Age其中 EID为排号键

10

=A9.create()

 

11

=A10.cursor()

产生集群游标

12

=file@w("EmpCTX2.ctx":[3],A1)

 

13

=A12.create(#EID:4,Name,Dept,Age;EID:3)

创建以EID为排号键,EID的前3个字节为分段键的基表,且排号键的长度是4

14

>A13.append(A11)

追加集群游标

15

=A13.cursor().fetch()

 

16

=file("EmpCTX3.ctx":[1,2],A1)

 

17

=A16.create(#EID,Name,OCount;;EID%2+1;"@!*123":"12")

在分区12下各创建一个EmpCTX3.ctx,并且设置写:读密码

T.create()

描述:

复制序表T的数据结构,以此产生一个新的空序表

语法:

T.create()

备注:

如果T有键,则同时复制键。

参数:

T

序表

返回值:

新空序表

示例:

Ø  由普通序表产生

 

A

 

1

=demo.query("select top 1 * from DEPARTMENT")

2

=A1.create()

通过=A1.create (),产生一个空序表A2,这个空序表与A1序表的数据结构一致,都是由DEPTMANAGER字段组成

 

Ø  复制键和描述符

 

A

 

1

=demo.query("select * from DEPARTMENT ")

 

2

=A1.keys(DEPT)

 

3

=A1.create()

产生一个空序表,与A1序表的数据结构一致,且同时复制了键

r.create()

描述:

复制记录r的数据结构,以此产生一个新的空序表

语法:

r.create()

备注:

如果r有键,则同时复制键。

参数:

r

记录

返回值:

新空序表

示例:

Ø  由普通记录产生

 

A

 

1

=demo.query("select top 1 * from DEPARTMENT")

2

=A1(1).create()

通过=A1(1).create (),产生一个空序表A2,这个空序表与A1(1)记录的数据结构一致,都是由DEPTMANAGER字段组成

 

Ø  复制键和描述符

 

A

 

1

=demo.query("select * from DEPARTMENT ")

 

2

=A1.keys(DEPT)

 

3

=A1(1).create()

产生一个空序表,与A1(1)记录的数据结构一致,且同时复制了键