query()

阅读(1069) 标签: query,

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

db.query()

描述:

在数据源中查询指定的SQL,返回查询结果所组成的序表

语法:

db.query( sql {,args …})

 

db.query(A,sql{,args })

针对A执行sql,返回结果集合并的序表,

args可以是A的表达式。支持选项@idx

db.query(call dfx(){,args })

通过esProc-ODBC数据源db调用dfx文件,返回结果。

备注:

在数据源db中查询指定的SQL,返回SQL的查询结果所组成的序表。

sqlFROM后是单表时,自动设置结果序表的键。

当数据源名称为空时,该函数支持使用简单SQL

参数:

db

数据库连接,其中包含esProc-JDBC数据源

sql

需要查询的sql语句,如select * from table

args

sql中如果用到参数,就必须转入参数值,这里可以是直接写好的参数值,或者是查询定义的变量。注意,各个参数之间用逗号分隔。

A

序列,对着A循环执行sql,一般是利用A计算出不同的args传给sql去执行

dfx

网格文件。网格文件可使用相对路径或绝对路径,相对路径时相对于寻址路径。

选项:

@1

只返回符合条件的第一条记录, 返回成单值或序列

@i

结果集只有1列时返回成序列

@d

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

@x

结束时自动关闭数据库连接,仅限用connect连接的数据库连接

返回值:

sql记录组成的序表

示例:

 

A

 

1

=demo.query("select * from EMPLOYEE where DEPT=? ","Sales")

 

2

=demo.query@1("select * from EMPLOYEE where DEPT=? ","Sales")

[3,"Rachel","Johnson","F","New Mexico",1970-12-17,2010-12-01,"Sales",9000]; 返回查询得到的第一条记录的字段值组成的序列

3

[1,2,3,4]

 

4

=demo.query(A3,"select * from EMPLOYEE where EID=?",~)

5

=demo.query@i(A3,"select SURNAME from EMPLOYEE where EID=?",~)

  

返回成序列

6

=demo.query@i("select DEPT from DEPARTMENT")

返回成序列

7

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

8

=connect("demo")

 

9

=A8.query@x("select DEPT from DEPARTMENT")

结束时自动关闭数据库连接

10

=myproc.query("call hsql(?)",10)

hsql.dfx位于寻址路径中,内容如下:

myprocesProc-ODBC数据源名称。参数值为10。结果如下:

11

=myproc.query("call G://hsql(?)",10)

hsql.dfx位于G盘根目录内容如同上。结果同A10

12

=connect("esproc-JDBC")

连接esproc-JDBC数据源

13

=A12.query("select * from D:/City.txt")

通过esproc-JDBC查询本地数据文件

相关概念:

db.execute()

db.proc()

$(db)sql;…