dfx ( …)

阅读(563) 标签: 寻找程序执行, 服务器,

描述:

通过集算器jdbc,在本地寻找程序文件执行,找不到则到服务器上找

语法:

dfx (…)

备注:

传入参数调用需要执行的网格文件dfx,先在本地寻找相对寻址路径的网格文件执行,找不到则到服务器上找(服务器列表在dfxConfig.xml文件中配置),在集算器或服务器完成计算后,返回结果集拼成序列;多结果集的情况下,返回多个结果拼成的序列。dfx (…)可以视为call dfx(…)的简单写法,用st. executeQuery()执行,并返回结果集。

参数:

dfx

网格文件,可带相对寻址路径或绝对路径

参数,多参数时用逗号隔开,接收参数的参数名不会用到,而是按照参数的顺序来依次赋值。

示例:

C:\\test.dfx网格文件内容如下,StuIdClass为网格参数:

 

A

1

=connect("demo")

2

=A1.query("select * from SCORES where STUDENTID=? and CLASS=?",StuId,Class)

3

=A2.sum(SCORE)

4

>A1.close()

5

return A3

测试代码如下:

public void testDataServer() {

Connection con = null;

java.sql.PreparedStatement st;

try{

Class.forName("com.esproc.jdbc.InternalDriver");

con= DriverManager.getConnection("jdbc:esproc:local://");

//调用存储过程,其中testdfx的文件名

st =con.prepareCall("test ?,?");

//设置第一个参数

st.setObject(1,"4");

//设置第二个参数

st.setObject(2,"Class one");

//执行存储过程

st.execute();

//获取结果集

ResultSet set = st.getResultSet();

//打印结果

printRs(set); 

//下面的语句和上面的调用方法效果相同

st =con.prepareCall("test 4,\"Class one\"");

st.execute();

set = st.getResultSet();

printRs(set);

}

catch(Exception e){

System.out.println(e);

}

finally{

//关闭连接

if (con!=null) {

try {

con.close();

}

catch(Exception e) {

System.out.println(e);

}

}

}

}