eas之执行sql的方式
客户端:
1. 有返回集合:查询
//查询出DB中所有该字段的值,与其进行比较,若有相同的则报错
String sql="select CFWuliaoCode from CT_JC_TestWuliao";
//sql执行者接口,sql执行者工厂对象,获取远程实例,sql语句
ISQLExecutor isql=SQLExecutorFactory.getRemoteInstance(sql);
IRowSet rest=isql.executeSQL(); //行集合接口 执行接口.执行方法
while(rest.next()){ //这里可以用循环取数 或是if进行判断是否为空
String acode=rest.getString("CFWuliaoCode");
if(acode.equals(b)){
make=make+1;
}}
2. 无返回集合,返回影响行数: 删除,更新
String upsql="update T_IM_PurInWarehsBill set CFKDTextField='"+value+"' where FID='"+sourceid+"'";
com.kingdee.eas.base.multiapprove.ISqlFacade isql=SqlFacadeFactory.getRemoteInstance();
int i=isql.executeSql(upsql);
服务端sql:
String sql2="select * from CT_JC_TestWuliao";
IRowSet rest=DbUtil.executeQuery(ctx, sql2);
在服务端执行一段带参数的sql
如果需要在服务端ControllerBean执行更新或删除的sql
private void executeSql(Context ctx,String strName,String id)throws BOSException,EASBizException{
StringBuffer sql=new StringBuffer();
List params=new ArrayList();
sql.append("......");.....
params.add(strName);
params.add(new Timestamp(new Date().getTime()));
com.kingdee.eas.util.app.DbUtil.execute(ctx,sql.toString(),params.toArray());
}
在服务端用带参数的sql取得结果集
public Map getSqlData(Context ctx,Date curDate)throws BOSException{
StringBuffer sql=new StringBuffer();
Map mapData;
List params=new ArrayList();
sql.append("....").......
params.add(new Timestamp(new Date().getTime()));
IRowSet rs=DbUtil.executeQuery(ctx,sql.toString(),params.toArray());
while(rs.next()){
if(mapData==null){
mapData=new HashMap();
}
mapData.put(rs.getString("FNumerb"),rs.getString("FName"));
}
return mapData;
}