我用的数据库SQLServer2000
存储过程为(没问题):
create procedure proc_enter @count int output,
@name varchar(50) ,
@password varchar(50) ,
@sex bit,
@Email varchar(50),
@re varchar(50)
as
insert into  enter (name,password,sex,Email,re) values(@name,@password,@sex,@Email,@re) select @count = count(*)from enter select id,name,password,sex,Email,re from enter(等等在说)goServlet代码:
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
java.sql.Connection con = DriverManager.getConnection("Jdbc:Odbc:jsp");

String sql = "{call proc_enter(?,?,?,?,?,?) }";

java.sql.CallableStatement cs = con.prepareCall(sql);
cs.registerOutParameter(1, java.sql.Types.INTEGER);//返回int
cs.setString(2, "hf");
cs.setString(3, "hflaikankan");
cs.setInt(4, 1);
cs.setString(5, "[email protected]");
cs.setString(6, "hfhahahahaha");

cs.execute();ResultSet rs = cs.getResultSet();问题就在这了大家看到上面那句红的select语句了吧,我只要去掉它这里就可以正常返回,不然count = 0
我用executeQuery()试过也不行,
为什么?

//返回out参数
int count = Integer.parseInt(cs.getObject(1).toString());
while(rs.next())
{
rs.getString(1);}....关闭连接

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【huangdilei】截止到2008-07-27 19:52:56的历史汇总数据(不包括此帖):
    发帖的总数量:4                        发帖的总分数:90                       每贴平均分数:22                       
    回帖的总数量:3                        得分贴总数量:0                        回帖的得分率:0%                       
    结贴的总数量:4                        结贴的总分数:90                       
    无满意结贴数:0                        无满意结贴分:0                        
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:0.00  %               无满意结分率:0.00  %                  
    敬礼!