sSQL="call (PTofm_QueryDetail ?,?,?,?,?)";
cstmt = conn.prepareStatement(sSQL);
cstmt.setString(1, sPage);
cstmt.setInt(2, nPageSize);
cstmt.setString(3, sTable);
cstmt.setString(4, sCondition);
//cstmt.setString(5, "");
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
rs = cstmt.executeQuery();
执行时报错:
Generated servlet error:
The method registerOutParameter(String, int) is undefined for the type PreparedStatement
如果将
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
换成
cstmt.setString(5, "");
则执行可以通过。
5 个解决方案
#1
应该是CallableStatement,执行存储过程不是用PreparedStatement
conn.prepareCall(sql);
conn.prepareCall(sql);
#2
conn.prepareCall(sql);还是一样
去掉cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
换成cstmt.setString(5, "");
是可以编译运行
谢谢回复
去掉cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
换成cstmt.setString(5, "");
是可以编译运行
谢谢回复
#3
楼主可以试下
还有就是像这样
最好是
pstmt.executeUpdate();
还有就是像这样
最好是
con.setAutoCommit(false);//不设置自动提交
sSQL="call (PTofm_QueryDetail ?,?,?,?,?)";
cstmt = conn.prepareStatement(sSQL);
cstmt.setString(1, sPage);
cstmt.setInt(2, nPageSize);
cstmt.setString(3, sTable);
cstmt.setString(4, sCondition);
//cstmt.setString(5, "");
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
pstmt.executeUpdate();
con.commit();//手动提交
System.out.println("提交成功");
con.setAutoCommit(true);//设回来.
#4
帮你顶一个~
#5
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR); 在这不能用这个吧??
#1
应该是CallableStatement,执行存储过程不是用PreparedStatement
conn.prepareCall(sql);
conn.prepareCall(sql);
#2
conn.prepareCall(sql);还是一样
去掉cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
换成cstmt.setString(5, "");
是可以编译运行
谢谢回复
去掉cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
换成cstmt.setString(5, "");
是可以编译运行
谢谢回复
#3
楼主可以试下
还有就是像这样
最好是
pstmt.executeUpdate();
还有就是像这样
最好是
con.setAutoCommit(false);//不设置自动提交
sSQL="call (PTofm_QueryDetail ?,?,?,?,?)";
cstmt = conn.prepareStatement(sSQL);
cstmt.setString(1, sPage);
cstmt.setInt(2, nPageSize);
cstmt.setString(3, sTable);
cstmt.setString(4, sCondition);
//cstmt.setString(5, "");
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR);
pstmt.executeUpdate();
con.commit();//手动提交
System.out.println("提交成功");
con.setAutoCommit(true);//设回来.
#4
帮你顶一个~
#5
cstmt.registerOutParameter("sPageInfo",java.sql.Types.VARCHAR); 在这不能用这个吧??