call()

阅读(2575) 标签: 网格文件, 第一个结果集,

描述:

调用脚本文件,返回第一个结果集。

语法:

call(spl,arg1,…)

备注:

传入参数arg1,调用脚本文件.dfx/.splx/.spl,返回其第一个return值并关闭。call函数非网格函数,可在网外使用。查找.dfx/.splx/.spl时自动选用@s选项,按照指定顺序搜索非绝对路径的文件名搜索顺序为类路径 - 寻址路径 - 主目录,主目录缺省为当前目录。

调用call时使用参数arg1…,这些参数值将依次设入.dfx/.splx/.spl的各个参数中,与.dfx/.splx/.spl参数列表中的参数名无关。

参数:

spl

.dfx/.splx/.spl格式的脚本文件或脚本文件对象。

arg1,

参数。

选项:

@r

不使用缓存调用,缺省将使用缓存。

@n

重新产生一个新任务空间,并使用新线程执行,不等结果立即返回,通常用于执行定时任务或循环计算的脚本。

@f

执行spl并登记spl中的func fn(…)形式的函数,call@f不可用于多线程。

示例:

C:\\test.splx脚本文件内容如下,arg1为网格参数:

 

A

1

=connect("demo").query("select * from Students1 where Age>?",arg1)

2

return A1

调用test.splx脚本文件:

 

A

 

1

=call("C:\\test.splx",15)

调用脚本文件,返回第一个return值,查询年龄大于15的学员信息。

2

=call(file("C:\\test.splx"),15)

参数为脚本文件对象,结果同A1

  ca01.splx脚本文件内容如下,arg1为网格参数:

 

A

B

1

func  cf(arg1)

 

2

 

=arg1*10

3

 

return B2

4

=cf(arg1)

 

  执行并登记ca01.splx脚本文件:

 

A

 

1

=call@f("ca01.splx",9)

执行ca01.splx,返回90。同时登记ca01.splx脚本文件中的函数cf()

2

=cf(3)

调用A1中登记的函数cf(),返回30

注意:

返回多个return结果时可以用逗号隔开,如returnA1,B2