这是一段SQLServer的存储过程
大致意思就是判断用户在某个时间段内,是否可以登陆,如果登录成功。则返回他这场考试的考卷现在我的应用时,我们是用ibatis的,现在我需要获得最后的 ExamArrangeID这个字段(
select a.ExamArrangeID
from V_ExamArrange a
left join T_Answer b on a.ExamArrangeID = b.ExamArrangeID...
),进行下一步的操作,请教应该怎么获得,如果要改Proceduce的话,请教下怎么改这个Procedureibatis如何获得这个隐式的游标字段???请教高人
存储过程如下:
--考试登陆
if exists (select name from sysobjects where name = 'P_ExamLogin' and type = 'P') drop procedure P_ExamLogin
go
create procedure P_ExamLogin
@StudentCode char(12),
@Passwords varchar(40),
@ReturnValue varchar(100) = null output
as
--判断用户名是否存在
if not exists(select * from T_Student where StudentCode = @StudentCode)
begin
set @ReturnValue = '用户名不存在'
return 1
end

--判断登陆密码是否正确
if not exists(select * from T_Student where StudentCode = @StudentCode and Passwords = @Passwords)
begin
set @ReturnValue = '密码错误'
return 2
end

--返回考试安排主键
--Exam可登陆时间:考试开始前30mins 到 考试结束后5mins
if not exists(select a.ExamArrangeID
from V_ExamArrange a
left join T_Answer b on a.ExamArrangeID = b.ExamArrangeID
left join T_Student c on b.StudentID = c.StudentID
where c.StudentCode = @StudentCode
and getdate() between dateadd(second, -1800, a.BeginDateTime) and dateadd(second, +600, a.EndDateTime))
begin
set @ReturnValue = '该时间没有考试'
return 3
end
select a.ExamArrangeID
from V_ExamArrange a
left join T_Answer b on a.ExamArrangeID = b.ExamArrangeID
left join T_Student c on b.StudentID = c.StudentID
where c.StudentCode = @StudentCode
and getdate() between dateadd(second, -1800, a.BeginDateTime) and dateadd(second, +600, a.EndDateTime)
go