db.cursor()

阅读(3726) 标签: sql, 创建数据库, 自动关闭,

描述:

根据sql创建数据库游标。

语法:

db. cursor(sql {,args …})

备注:

根据sql创建数据库游标,数据扫描完将自动关闭游标。

参数:

db

数据源连接。

sql

sql查询语句

args

传递给sql的参数;可以是参数值,也可以是定义过的参数名称,多个参数之间用逗号分隔。

选项:

@i

结果集只有1列时返回的游标内容为序列。

@d

numeric型数据转换成double型数据而非decimal型数据。

@x

关闭游标时自动关闭数据库连接,只限用connect方式的db连接,使用该选项返回的游标不能回转。

@v

生成纯序表/纯序列游标。

返回值:

游标

示例:

 

A

 

1

=demo.cursor("select * from SCORES")

db参数为数据源名称,此时要求demo是连接成功的状态。

2

=connect("demo")

 

3

=A2.cursor@x("select * from SCORES").fetch()

connect连接方式,可以使用@x选项。

4

=A2.cursor("select * from STUDENTS")

正常会出现报错:Data Source demo is shutdown or wrong setup.,提示数据源未启动,这是由于A3中的游标关闭时,自动关闭了数据库连接。

  sql中有参数:

 

A

 

1

>arg2="R&D"

定义参数名为arg2,参数值为"R&D"

2

=demo.cursor("select EID,NAME,DEPT,GENDER from employee  where  EID<? and DEPT=?  and  GENDER=?",arg1,arg2,"M")

查询employee表中的内容,其中arg1为网格参数,参数值为100arg2A1格中定义的参数,第三个参数直接传递参数值为“M”。

3

=A2.fetch()

读取A2游标中的数据:

  返回其他类型游标数据:

 

A

 

1

=demo.cursor("select NAME from  STUDENTS")

demo数据源中查询STUDENTS表的NAME字段,返回游标内容如下:

2

=demo.cursor@i("select  NAME from  STUDENTS")

结果集只有一列时,使用@i选项,返回的游标内容为序列:

3

=demo.cursor@v("select * from  STUDENTS")

返回纯序表游标。

4

=demo.cursor@iv("select  NAME from  STUDENTS")

返回纯序列游标。

5

=mysql.cursor@d("select * from ta")

使用@d选项,numeric型数据将被转换成double

相关概念:

cs.fetch()

cs.skip()