<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    有JDBC編程的人都會(huì)知道這是一個(gè)什么樣的異常。做為剛出道的菜鳥我可因?yàn)檫@個(gè)異常把我整一下。
    我希望這小段隨筆能給閱讀都帶來幫助,也希望大家多多指教。
    我在EJB中寫了一個(gè)方法:public Vector searchCase(String dataSource,BlacksmokeEnqDataobject inputObj,String sql,int maxAllowSize){
      Connection con = null;
      Vector VqueryData = null;
      PreparedStatement ps = null;
      ResultSet rs = null;
      FormatFunctions ff = new FormatFunctions();
      BlacksmokeEnqReportDataobject blsObj = null;
      SqlFunctions sf = new SqlFunctions();
      try{
       con = getConnection(dataSource);
       String drv_ic_n = inputObj.getDrv_ic_n();
       String caseType = inputObj.getCaseType();
       String vehicleNo = inputObj.getVehNo();
       String fleetType = inputObj.getFleetType();
       String make = inputObj.getMake();
       String model = inputObj.getModel();
       String payFrom = inputObj.getPayDateFrom();
       String payTo = inputObj.getPayDateTo();
       String offFrom = inputObj.getOffeDateFrom();
       String offTo = inputObj.getOffeDateTo();
       String entryFrom = inputObj.getEntryDateFrom();
       String entryTo = inputObj.getEntryDateTo();
       int smokeFrom = inputObj.getSmokeFrom();
       int smokeTo = inputObj.getSmokeTo();
       if (drv_ic_n.equals("")){
        drv_ic_n = null;
       }
       if (caseType.equals("")){
        caseType = null;
       }
       if (vehicleNo.equals("")){
        vehicleNo = null;
       }
       if (fleetType.equals("")){
        fleetType = null;
       }
       if (make.equals("")){
        make = null;
       }
       if (model.equals("")){
        model = null;
       }
       if (payFrom.length()>0 && payFrom.equalsIgnoreCase("00/00/0000")){
        payFrom = null;
       }
       if (payTo.length()>0 && payTo.equalsIgnoreCase("00/00/0000")){
        payTo = null;
       }
       if (offFrom.length()>0 && offFrom.equalsIgnoreCase("00/00/0000")){
        offFrom = null;
       }
       if (offTo.length()>0 && offTo.equalsIgnoreCase("00/00/0000")){
        offTo = null;
       }
       if (entryFrom.length()>0 && entryFrom.equalsIgnoreCase("00/00/0000")){
        entryFrom = null;
       }
       if (entryTo.length()>0 && entryTo.equalsIgnoreCase("00/00/0000")){
        entryTo = null;
       }   
       String tmpSql = sf.retuSqlS(sql);
       tmpSql = sf.linkSql(tmpSql,":LS_CO_FINE_PAID_D_FROM",payFrom);
       tmpSql = sf.linkSql(tmpSql,":LS_CO_FINE_PAID_D_TO",payTo);
       tmpSql = sf.linkSql(tmpSql,":LS_BLS_OFFENCE_D_FROM",offFrom);
       tmpSql = sf.linkSql(tmpSql,":LS_BLS_OFFENCE_D_TO",offTo);
       tmpSql = sf.linkSql(tmpSql,":LS_ENTRY_D_FROM",entryFrom);
       tmpSql =  sf.linkSql(tmpSql,":LS_ENTRY_D_TO",entryTo);
       ps = con.prepareStatement(tmpSql);
    //   System.out.println(tmpSql);
       int idx = 0;
       ps.setString(++idx,drv_ic_n);
       ps.setString(++idx,drv_ic_n);
       ps.setString(++idx,caseType);
       ps.setString(++idx,caseType);
       ps.setString(++idx,vehicleNo);
       ps.setString(++idx,vehicleNo);
       ps.setString(++idx,fleetType);
       ps.setString(++idx,fleetType);
       ps.setString(++idx,make);
       ps.setString(++idx,make);
       ps.setString(++idx,model);
       ps.setString(++idx,model);
       ps.setInt(++idx,smokeFrom);
       ps.setInt(++idx,smokeFrom);
       ps.setInt(++idx,smokeTo);
    //   ps.setInt(++idx,smokeTo);  
       ps.executeQuery();
       rs = ps.getResultSet();
       VqueryData = new Vector();
       idx = 0;
       while(rs.next() && idx <= maxAllowSize){
        blsObj = new BlacksmokeEnqReportDataobject();
        blsObj.setDRV_IC_N(rs.getString("DRV_IC_N"));
        blsObj.setDRV_NM(rs.getString("DRV_NM"));
        blsObj.setBLS_CASE_N(rs.getString("BLS_CASE_N"));
        blsObj.setBLS_CASE_T(rs.getString("BLS_CASE_T"));
        blsObj.setVEH_REGN_N(rs.getString("VEH_REGN_N"));
        blsObj.setBLS_FLT_T(rs.getString("BLS_FLT_T"));
        blsObj.setBLS_MAKE_C(rs.getString("BLS_MAKE_C"));
        blsObj.setBLS_MODEL_C(rs.getString("BLS_MODEL_C"));
        blsObj.setBLS_OFFENCE_D(ff.dateFormat(rs.getDate("BLS_OFFENCE_D")));
        blsObj.setENTRY_D(ff.dateFormat(rs.getDate("ENTRY_D")));
        blsObj.setSMOKE_LEV_READ(rs.getInt("SMOKE_LEV_READ"));
        blsObj.setCO_FINE_PAID_D(ff.dateFormat(rs.getDate("CO_FINE_PAID_D")));
        VqueryData.addElement(blsObj);
        idx++;
       }
       }catch(Exception e){
        blsObj.setErrStatus(sf.ckException(e));
        VqueryData.addElement(blsObj);
        e.printStackTrace();
       }finally{
        SqlFunctions.cleanup(ps, rs);
        SqlFunctions.cleanup(con);
       }
      return VqueryData;
     }這是一個(gè)通過XML文件來傳SQL語。把查詢語句寫在XML文件中,在Servlet中調(diào)用XML文件。
    上面那個(gè)錯(cuò)誤是因?yàn)闆]有對(duì)XML中的查詢變量進(jìn)行綁定,或者是多寫,或少寫變量,或者變量名寫錯(cuò)了。后來我重新認(rèn)真的做了一遍,發(fā)生我沒有寫錯(cuò)。我把JDeveloper關(guān)了,重新打開,可以了。我的沒有想這是怎么一回,如果有同樣問題的好友知道這是怎么一回事,請(qǐng)聯(lián)系我rodney_luo@163.com. QQ:86322591
    posted on 2005-09-15 16:19 rodney 閱讀(15713) 評(píng)論(1)  編輯  收藏 所屬分類: 工作中遇到的問題與解決方式
    Comments
    • # re: java.sql.SQLException: 無效的列索引 
      lehua
      Posted @ 2006-12-09 16:51
      你的表的列數(shù) 和insert語句中的列數(shù)不一樣  回復(fù)  更多評(píng)論   
     
    主站蜘蛛池模板: 亚洲一区在线视频| 丁香花在线观看免费观看| jzzijzzij在线观看亚洲熟妇| 亚洲AV本道一区二区三区四区| yy6080亚洲一级理论| 免费观看黄网站在线播放| 无码AV片在线观看免费| 成人妇女免费播放久久久| AV激情亚洲男人的天堂国语| 国产精品亚洲精品观看不卡| 亚洲免费视频网站| 亚洲日本va中文字幕久久| 亚洲高清免费视频| 国产精品免费视频网站| 成人免费男女视频网站慢动作| 午夜免费1000部| 久久免费精彩视频| 黄页免费在线观看| 丝瓜app免费下载网址进入ios| 成人午夜影视全部免费看| 国产一区二区三区亚洲综合| 亚洲久热无码av中文字幕| 亚洲AV日韩综合一区尤物| 亚洲人和日本人jizz| 亚洲免费观看在线视频| 亚洲avav天堂av在线网爱情| 亚洲欧洲在线播放| 亚洲成AV人综合在线观看| 亚洲一区二区三区四区在线观看| 亚洲AV无码码潮喷在线观看 | 亚洲日本视频在线观看| 亚洲AV日韩AV天堂久久| 综合自拍亚洲综合图不卡区| 精品亚洲成a人片在线观看少妇| 亚洲VA中文字幕无码一二三区 | 免费国产黄网站在线观看动图| 亚洲AV无码AV吞精久久| 国产精品亚洲精品久久精品| 亚洲AV无码AV吞精久久| 日韩成人毛片高清视频免费看| 一区二区视频免费观看|