7.10.1跨网格游标基本使用

跨网游标通常用来处理大数据的分析计算,但是对数据量并没有硬性要求,我们先来用较少的数据来了解跨网游标的使用。例如,网格D:\files\FindEmployees1.dfx如下:

 

A

1

$(demo) select * from EMPLOYEE where DEPT = ?;arg1

2

>output("before return")

3

return A1

网格中的程序比较简单,从数据库中查询出某个部门的员工数据,并在A3中用return语句返回结果序表。在A1中用到了参数arg1,这是一个网格参数,用来设定部门名称,需要在菜单栏中点击Program>Parameter设置:

5.6子程序中,讲述了用call函数执行其它网格文件中程序的方法,跨网格游标的使用与其类似,只是需用cursor来返回游标。在主网格中调用如下:

 

A

1

=cursor("FindEmployees1.dfx";"Sales")

2

>output("before fetch")

3

=A1.fetch()

在用cursor生成跨网游标时,直接指定所调用的dfx文件名,如果需要使用参数,写在网格文件后面,用分号分隔。执行后,A1中的数据是跨网游标,它的使用与普通的游标相同:

A3中用fetch返回了销售部的员工序表:

在两个网格中,都使用了output函数,这个函数会在执行时将字符输出到后台,有助于我们了解网格的执行顺序。在菜单栏中选择Tool> Options,并在Option窗口的General页面中选定Console takeover,查看控制台输出情况如下:

可见,在跨网游标计算时,当真正开始用fetch取数时,才会调用指定网格中的程序开始计算。

A1中调用dfx文件时,并未使用全路径,此时文件需置于集算器的主路径或者寻址路径中。主路径及寻址路径的设定,与用call函数跨网格调用时的设定是相同的,在下面再说明一下。

在菜单栏中点击Tool>Options,在选项设定的Environment页面中,可以设定主路径和寻址路径,如:

在上面的设置中,dfx文件置于主路径Main Path中,或者寻址路径Searching Path的任何一个目录中,在调用时,都可以只用文件名,而不用写全路径。

如果是被集成使用时,则需要在配置文件raqsoftConfig.xml中,设置主路径与寻址路径:

  <dfxPathList>

  <dfxPath>E:\tools\raqsoft\esProc\demo\Case\Structural</dfxPath>

  <dfxPath>D:\files\txt;D:\files</dfxPath>

  </dfxPathList>

  <mainPath>D:\files\demo</mainPath>