register()

阅读(2517) 标签: dfx, 登记, 函数, call,

描述:

.dfx/.splx/.spl文件登记为函数。

语法:

register(f,spl)

备注:

登记spl文件为函数f,之后该函数便可以在网格脚本中使用,函数表达式写法为:f(xi,...),其中xi,...为脚本文件中的参数,多个参数间用逗号分隔。

函数名重复登记时将以最后一次登记内容为准。

  register不支持在线程中使用。

参数:

f

函数名称。

spl

脚本文件.dfx/.splx/.spl文件路径,可以是绝对路径,也可以是相对路径,使用相对路径时相对于主目录。

选项:

@o

使用@o选项登记的函数,调用式中f@o中的o被作为spl的第一个(字符串)参数,调用式中没有指定选项时则认为第一个(字符串)参数传递为空值。

@j

登记到任务空间,缺省登记进全程空间。

返回值:

脚本文件的执行结果

示例:

emp.splx内容如下,其中arg1arg2为网格参数:

 

A

1

=connect("demo")

2

=A1.query("select EID,NAME,DEPT,GENDER,SALARY from employee where DEPT=? and GENDER=?",arg1,arg2)

3

return A2

登记emp.splx为函数后调用:

 

A

 

1

=register("df1","D:/emp.splx")

emp.splx登记为函数,函数名称为df1

2

=df1("HR","M")

调用登记过的函数,并传递参数值:

 

emp2.splx内容如下,其中optarg2为网格参数:

 

A

B

1

if opt=="z"

>opt="order by SALARY desc"

2

else  if opt=="a"

>opt="order by SALARY"

3

="select EID,NAME,GENDER,SALARY from employee where GENDER=? "+opt

 

4

=connect("demo").query(A3,arg2)

 

登记时使用@o选项:

 

A

 

1

=register@o("df2","D:/emp2.splx")

使用@o方式登记emp2.splx为函数,函数名称为df2

df2函数支持使用@z@a选项,@z表示根据SALARY降序排序,@a表示根据SALARY升序排序,选项缺省时不排序。

2

=df2@z("F")

调用df2函数,使用@z选项,结果根据SALARY降序排序;

执行计算时emp2.splx第一个字符串参数即opt的值为z,参数arg2值为F,返回结果如下:

3

=df2@a("M")

调用df2函数,使用@a选项,结果根据SALARY降序排序;

执行计算时emp2.splx第一个字符串参数即opt的值为a,参数arg2值为M,返回结果如下:

4

=df2("M")

调用df2函数,选项省略时不排序;

执行计算时emp2.splx第一个字符串参数即opt的值为空,参数arg2值为M,返回结果如下: