JAVA端,该语句没有返回结果集,但是数据库能查出来
这是JAVA代码,, 该sql语句在数据库执行正常..在java端提示没有返回结果集
public String enter(String funcode, String inputStr,
String ExtensionInputStr, String name, String pwd, String path) {
String ss = "";
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection(path, name, pwd);
String sql = "DECLARE @return_value int,@OutputStr varchar(max),@ExtensionOutputStr varchar(max) EXEC @return_value = [dbo].[ap_callSelfServices] @funcode = ?,@InputStr =?,@ExtensionInputStr = ?,@OutputStr = @OutputStr OUTPUT,@ExtensionOutputStr = @ExtensionOutputStr OUTPUT";
ps = conn.prepareStatement(sql);
ps.setObject(1, funcode);
ps.setObject(2, inputStr);
ps.setObject(3, ExtensionInputStr);
rs = ps.executeQuery();
if (rs.next()) {
ss = rs.getString(1);
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ss;
}
这是报的错..数据库返回的是xml形式,我给转换成字符串了 ..
com.microsoft.sqlserver.jdbc.SQLServerException: 该语句没有返回结果集。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError(SQLServerException.java:190)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:408)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:350)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:5696)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1715)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:180)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:155)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:285)
at com.bb.model.dao.EnterDAO.enter(EnterDAO.java:141)
at com.bb.model.dao.EnterDAO.enterDAO(EnterDAO.java:111)
at com.bb.test.Test.main(Test.java:13)