try:CREATE PROCEDURE ScGZ @year int,@month int ,@date datetime AS
declare @count int
declare @PrevYear int,@PrevMonth int --上一個月的年份,月份
declare @returnValue int
set xact_abort on
begin tran ----- 判斷出勤記錄是否全部鎖定,沒有鎖定則不能算工資
exec @returnValue = checkcqzliflock @year,@month
if @returnValue = -1
return
.....
commit tran
CREATE proc checkcqzliflock @year int,@month int as
set xact_abort on
begin tran
declare getstate_curs cursor for
select r.sfzhm,r.name,x.state from rgjbzl r, rgcqinput x where r.sfzhm=x.sfzhm and x.yy=@year and x.mm=@month
open getstate_curs
declare @sfzhm varchar(30),@name varchar(10),@state char(1)
fetch next from getstate_curs into @sfzhm ,@name,@state
while (@@fetch_status=0)
begin if @state<4
begin
select @s='"'+@name+'"'+'的出勤資料未鎖定!'
raiserror(@s,16,1)
commit tran
return -1
end
fetch next from getstate_curs into @sfzhm ,@name,@state
end
close getstate_curs
deallocate getstate_curs
return 0
declare @count int
declare @PrevYear int,@PrevMonth int --上一個月的年份,月份
declare @returnValue int
set xact_abort on
begin tran ----- 判斷出勤記錄是否全部鎖定,沒有鎖定則不能算工資
exec @returnValue = checkcqzliflock @year,@month
if @returnValue = -1
return
.....
commit tran
CREATE proc checkcqzliflock @year int,@month int as
set xact_abort on
begin tran
declare getstate_curs cursor for
select r.sfzhm,r.name,x.state from rgjbzl r, rgcqinput x where r.sfzhm=x.sfzhm and x.yy=@year and x.mm=@month
open getstate_curs
declare @sfzhm varchar(30),@name varchar(10),@state char(1)
fetch next from getstate_curs into @sfzhm ,@name,@state
while (@@fetch_status=0)
begin if @state<4
begin
select @s='"'+@name+'"'+'的出勤資料未鎖定!'
raiserror(@s,16,1)
commit tran
return -1
end
fetch next from getstate_curs into @sfzhm ,@name,@state
end
close getstate_curs
deallocate getstate_curs
return 0
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货