你把转换的代码贴出来看看,我估计是resultset的问题

解决方案 »

  1.   

    public class RecieveRuleExample  extends com.syssoft.dxp.rule.RuleClassFactory
    {
      /**
       * 处理接收数据
       */
      public void UserActive()
      {
       //表名称
       TransTableFace table = null;
       TransTableStructFace struct = null;
       DBPageResult resultset = new DBPageResult();
       String tablename = "",fieldname="",fieldtype,fieldvalue,
              insertinto,values,where,update,keyname = "";
       boolean ispk = false;   this.userdata.first();
       while (this.userdata.hasMoredata()) {
         table = this.userdata.next();
         tablename = table.getTableName();
         //循环接收数据的record
         table.first();
         struct = userdata.getTablestructlist().getTableStruct(table.getTableStructID());
         while (!table.isEof()) {
          where = " 1=1 ";
          values = "";
          insertinto = "";
          update = "";
          for (int j=1;j<=struct.getStructFieldCount();j++) {
           fieldname = struct.getFieldName(j);
           fieldtype = struct.getFieldType(j);
           fieldvalue = table.getFieldValue(fieldname);
           ispk = struct.getFieldisPK(j);
           if (!fieldvalue.equalsIgnoreCase("")) {
           //分析字段类型
           if (fieldtype.equalsIgnoreCase("integer")){
            fieldvalue = fieldvalue;
           }
           else if (fieldtype.equalsIgnoreCase("String")){
            fieldvalue = StringUtils.replaceString(fieldvalue, "'", "''");
            fieldvalue ="'"+fieldvalue+"'";
           }
           else if (fieldtype.equalsIgnoreCase("Date")){
             fieldvalue = " #"+fieldvalue+"#";
           };
           if (ispk) {
            where = where + " and "+ fieldname +" = " +fieldvalue;
            keyname = fieldname;
           }
            //insertinto
           if (insertinto.equalsIgnoreCase("")) insertinto = fieldname;
           else insertinto = insertinto +"," + fieldname;       //values
           if (values.equalsIgnoreCase("")) values = fieldvalue;
           else values = values +"," + fieldvalue;       //update
           if (!ispk) {
            if (update.equalsIgnoreCase("")) update = " set "+fieldname +"="+fieldvalue;
            else update = update +","+fieldname +"="+fieldvalue;
           }
          }
         }
          //组织SQL语句
          if (keyname.equalsIgnoreCase("")) keyname = fieldname;
          boolean ret = resultset.executeQuery("Select " + keyname
               +" From "+ tablename + " where" + where );
          if (ret) ret = resultset.isEmpty();
          resultset.close();
          String sql = "";
          //执行插入语句
          if (ret)
           sql = "Insert InTo "+tablename+"("+insertinto+") values("+values+")";
          //执行更新语句
          else
           sql = "update " + tablename + update  + " where" +  where;
          //执行
          ret = resultset.executeUpdate(sql);
          resultset.close();
          table.next();
         }
       }
      }  public void AfterActive(boolean sucess)
      {
        System.out.println("数据接收处理结果为:" + sucess);
      }
    }