create()

阅读(1326) 标签: 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( C ,…; x )

描述:

用文件创建组表

语法:

f.create(C,…;x)

备注:

用组表文件f创建组表,C为组表的列,C前带#表示维,维及其前面的所有字段必须有序。当f是文件组时生成复组表,x是分表表达式。

参数:

f

组表文件或文件组

C

组表的列

x

分表表达式

选项:

@u

不压缩,缺省将压缩

@r

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

@y

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

@p

按第一个字段分段

返回值:

组表或文件组

示例:

 

A

 

1

=file("employee1.ctx")

生成组表文件employee1.ctx

2

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

创建组表employee1.ctx的基表,EIDNAMEGENDER为基表的列名,其中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.ctx2.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中的数据

 

P.create()

描述:

复制排列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.create()

描述:

复制序表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.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("emp929.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.create()

描述:

复制记录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)记录的数据结构一致,且同时复制了键