select @Row1=0 select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName if @S_PrivilageType='SF' begin if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13') begin select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo) if @Row1>0 begin select iRet=2 return end end
select @Row1=0 select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName if @S_PrivilageType='SF' begin if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13') begin select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo) if @Row1>0 begin select iRet=2 -----------------------select @iRet=2 ???? return end end
这个问题我怎么也想不通啊。
out.print(iRet)看看是多少!
前两个都可以打印出正确的值即0和1,可是到第3个条件的时候就打印出错误的值了,
这似乎很明显是存储过程的问题。可是在sqlserver里确确实实是返回的2啊。。救命啊。。
select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName
if @S_PrivilageType='SF'
begin
if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13')
begin
select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo)
if @Row1>0
begin
select iRet=2
return
end
end
select @TempDeptNo =DeptNo from Bas_DeptCode where DeptName=@S_DeptName
if @S_PrivilageType='SF'
begin
if (@S_NodeNo='7')or(@S_NodeNo='8')or(@S_NodeNo='9')or(@S_NodeNo='10')or(@S_NodeNo='13')
begin
select @Row1=Count(*) from Sf_Privilege where (SfNodeNo=@S_NodeNo)and(DeptNo=@TempDeptNo)
if @Row1>0
begin
select iRet=2 -----------------------select @iRet=2 ????
return
end
end
我太粗心了
马上送分。