日期:2014-05-18  浏览次数:20763 次

在JDBC调用存储过程的出现的问题
CREATE   PROCEDURE   UserSign
AS

declare   @start   DATETIME
declare   @end     DATETIME
declare   @start1   DATETIME

set   @start=CAST( '2007-07-06 '   AS   DATETIME)
set   @end=CAST( '2007-07-31 '   AS   DATETIME)

while(@start <=@end)
BEGIN

set   @start1=DATEADD(day,1,@start)
select   *   from   UserTable   ut   left   outer   join   (select   *   from   [PersonSignIn/OutTable]
where   SignTimeM   > =   @start   AND   SignTimeM   <=   @start1)   pt   on   ut.UserId=pt.SignPersonId

set   @start=DATEADD(day,1,@start)
if(@start> @end)
break
else
continue
end

=========================================
存储过程创建完后

cstmt   =   con.prepareCall( "{call   "+procStr+   "} ");
ResultSet   rs   =rs   =   cstmt.executeQuery();得到了结果只显示了第1组数据(存储过程执行结果集的第1个循环的数据)其他的循环的数据没有得到
(在查询分析器里运行存储过程显示的是多个循环的数据)
请问各位如何解决

------解决方案--------------------
你这个存储过程是sql server里的存储过程吧?
你应该把循环查询的结果合到一个结果集里。