不能用这个,应该用那个callaxxxStatement

解决方案 »

  1.   

    楼上你说什么哟!!后来我发现是不是这里的缘故cstmt.executeQuery( );
    改成了cstmt.executeUpdate( );还是一样,到底用哪个?为什么都错,那就不是这里!
      

  2.   

    给你个例子,试一下
    public boolean callQueryPortByCardProc(String cardID, String sessionId) throws
          DAOSysException {
        Debug.println("call queryportByCard...");
        Connection conn = null;
        CallableStatement call = null;
        try {
          conn = getConnection();
          call = conn.prepareCall(
              " begin pg_ElecLine_DataCheck.up_queryportByCard(?,?,?); end;");
          call.setString(1, cardID);
          call.setString(2, sessionId);
          call.registerOutParameter(3, Types.INTEGER);
          call.execute();
          int rs = call.getInt(3);
          if (rs == 1||rs==0) {
            return true;
          }
          return false;
        }
        catch (SQLException ex) {
          throw new DAOSysException(ex.getMessage() + "调用存储过程错误!");
        }
        finally {
          cleanUp(conn, call, null, null);
        }
      }
      

  3.   

    终于自己找到错误了,都觉得不应该啊!
    import="java.sql.*;  //这里少了个引号,以至于下面的代码有错,都不能显示
    哎!吸取教训!
      

  4.   

    cstmt.executeQuery( );
    不是用这个的,你是向里写数据
    要用
    cstmt.executeUpdate( );