cs.fetch()

阅读(936) 标签: 游标, 获取记录,

描述:

打开游标/集群游标读取记录

语法:

cs.fetch(n;x)

备注:

打开游标/集群游标cs读取记录。

有参数n时,读取n条记录;

有参数x时,读取至x有变化(x不是逻辑值)或x为真(x是逻辑值);

nx两个参数只有一个有效,nx都省略时读取cs剩余所有记录关闭游标。

读取结果形成序列/排列/序表返回cs已到头返回空。

该函数常用于大数据量的分批取数

选项:

@0

返回的数据并不从游标中实际取出,相当于从游标中复制,不支持x

@x

取出数据后关闭该游标。

参数:

cs

游标/集群游标。

n

正整数。

x

分组表达式,csx有序,有x时忽略n

返回值:

序列/排列/序表

示例:

cs为游标,有参数n

 

A

 

1

=connect("demo").cursor("select top 10 EID,NAME,DEPT,SALARY from employee")

返回的游标中有10条记录。

2

=A1.fetch(3)

参数n3,从A1游标中读取3条记录(实际业务中游标数据量较大时,通常适合分批取数):

3

=A1.fetch(5)

A1游标中继续读取记录,由于A2中已取出3条,所以继续从第4条开始往后取5条记录:

3

>A1.close()

关闭游标。

cs为游标,有参数xx非逻辑值

 

A

 

1

=connect("demo").cursor("select top 20 EID,NAME,DEPT,SALARY from employee").sortx(DEPT)

返回的游标内容对DEPT字段有序。

2

=A1.fetch(;DEPT)

参数xDEPT,读取游标记录至DEPT字段值有变化,结果如下:

3

=A1.fetch()

参数省略,读取游标中剩余所有记录后关闭游标:

4

=A1.fetch()

由于在A3中已将游标中的数据取完并关闭游标,所以A4返回结果为null

cs为游标,有参数xx为逻辑值

 

A

 

1

=connect("demo").cursor("select top 15 EID,NAME,DEPT,SALARY from employee").sortx(-SALARY)

返回的游标内容对SALARY字段降序排序。

2

=A1.fetch(2;SALARY<10000)

有参数x时,忽略参数n。读取游标记录至SALARY<10000为真,结果如下:

3

=A1.fetch()

读取游标中剩余所有记录后关闭游标:

cs为集群游标:

 

A

 

1

[192.168.0.110:8281,192.168.18.143:8281]

分机序列。

2

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

分机192.168.0.1101.emp.ctx中包含GENDER值为F的数据,节点机192.168.18.1432.emp.ctx中包含GENDER值为M的数据。

3

=A2.open()

打开集群组文件。

4

=A3.cursor()

返回集群游标。

5

=A4.fetch()

打开集群游标读取所有记录后关闭游标

使用@0选项,不从游标中实际取出

 

A

 

1

=connect("demo").cursor("select top 10 EID,NAME,DEPT,SALARY from employee")

返回游标,游标中有10条记录。

2

=A1.fetch@0(3)

使用@0选项,从游标中读出3条记录,不实际取出:

3

=A1.fetch()

读取游标中剩余所有记录,此时可以读取出游标A1中的所有记录,可以看到返回了10条记录:

使用@x选项,读取数据后关闭游标

 

A

 

1

=connect("demo").cursor("select top 10 EID,NAME,DEPT,SALARY from employee")

返回游标,游标中有10条记录。

2

=A1.skip(5)

A1游标跳过5条记录。

3

=A1.fetch@x(3)

从游标中读取3条记录,由于A2中已跳过5条记录,所以此处会从第6条开始往后取3条记录:

使用@x选项,取数完成后关闭游标。

4

=A1.fetch()

由于A3中游标已关闭,所以结果返回null

相关概念:

db.cursor()

cs.skip()