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;
}

posted @ 2019-06-04 15:26  一条有梦想的海洋咸鱼  阅读(2395)  评论(0编辑  收藏  举报