NutzCN Logo
问答 存储过程数据库执行有结果,代码调用无结果
发布于 56天前 作者 qq_117e429a 100 次浏览 复制 上一个帖子 下一个帖子
标签:

数据库查询结果

施工环节    施工人员      辅助人员       开工状态                 人员调配
敲打施工	     1111	                           施工5天	<a href=javascript:jump(3,1145,'zid:6☆pid:1☆gx:敲打施工☆sgry:1111☆fzry:',1) style=color:blue >调配</a>
水电开槽       qqq		                   未开始         	<a href=javascript:jump(3,1145,'zid:8☆pid:1☆gx:水电开槽☆sgry:qqq☆fzry:',1) style=color:blue >调配</a>

java代码

Sql sqlCount = Sqls.create("exec pallocation_report '1','1' ");
			sqlCount.setCallback(Sqls.callback.records());
			sqlCount.setEntity(dao.getEntity(Record.class));
			dao.execute(sqlCount);
			List<Record> list = sqlCount.getList(Record.class);

返回数据list=[]

10 回复

自己写个回调debug看看吧

有可能是哪方面问题?

有可能是你返回了多个结果集, 然后只读取了第一个结果集

--人员调配
--exec Pallocation_report{%1,pid,h},getuid()
ALTER proc [dbo].[pallocation_report](@pid int,@uid int)
as

begin
/**********获取项目人员对应表*****************/
--exec proc_timesetting_zb5 @pid
/********************************************/
--单个日期的
--select top 1 1140,hid,daddtime,duid, fname,gx,rq,convert(varchar(10),dateadd(d,cast(ts as int),rq),120),pid,ts from timesetting_zb2  where  pid= 1
--合并日期的
--select * from timesetting_zb4
declare @today varchar(10)
set @today=convert(varchar(10),getdate(),120)
/*更新开工状态
kgstate=0 未开始 
kgstate=1 已完成 
kgstate=2 进行中  */
update timesetting_zb4 set kgstate=0  where isnull(kgstate,'')=''  and   datediff(d,rq,@today)<0    and pid=@pid    --未开始
update timesetting_zb4 set kgstate=1   where isnull(kgstate,'')=''  and   datediff(d,rqend,@today)>0    and pid=@pid --未开始
update timesetting_zb4 set kgstate=2   where isnull(kgstate,'')=''  and   (@today between rq and rqend)   and pid=@pid --未开始
--select *   from timesetting_zb4  人员调配表
select gx 施工环节,  isnull(sgry,'') 施工人员,isnull(fzry,'') 辅助人员,
 case when kgstate=0 then '未开始' when kgstate=1 then '已完成' when kgstate=2 then  '施工'+cast(datediff(d,rq,@today) as varchar)+'天/工期'+ts+'天'  else ''  end  开工状态,
 case when  kgstate=1 then '' 
else '<a href=javascript:jump(3,1145,''zid:'+cast(id as varchar)+'☆pid:'+cast(pid as varchar)+'☆gx:'+gx+'☆sgry:'+isnull(sgry,'')+'☆fzry:'+isnull(fzry,'')+''',1) style=color:blue >调配</a>'  end 人员调配
   from timesetting_zb4 
   where 
   pid=@pid
end

这个存储过程中有三个update语句,数据库执行这个存储过程有结果,代码调用无结果
去掉两个update语句只留一个update,就正常了,数据库执行有结果,代码执行也有结果了

这个是什么问题

就是我说的多个ResultSet吧

有什么方法解决吗

写个callback试试

翻了翻代码,回调是多次调用,我上面说的是错的

在存储过程中添加 set nocount on 就可以了

添加回复
请先登陆
回到顶部