各位上面所说是什么问题啊存储过程为:/*产生住院就诊号*/
CREATE PROCEDURE dp_zyjzdj @li_ddbh int,@ls_ylh varchar(20),@ls_cybm varchar(20),@ls_czyxm varchar(20),@ldt_cysj datetime, @ls_jzh varchar(13) output
AS
BEGIN
declare @ls_tjzh varchar(13)
declare @li_row int
declare @ls_xm varchar(20)
declare @ls_xb varchar(20)
declare @ls_sfz varchar(25)
declare @ls_jtdz varchar(100)
declare @ldt_csrq datetime
select @ls_xm=xm,@ls_xb=xb,@ldt_csrq=csrq,@ls_sfz=sfz,@ls_jtdz=jtdz
from v_cbryzl_cy
where cybm=@ls_cybm
select @li_row=@@rowcount
if @@error<>0
begin
Select @ls_jzh='-1'/*查询参保人员资料错误*/
return
end
if @li_row=0
begin
select @ls_jzh='-2'/*查询不到此医疗证号*/
return
end select @ls_tjzh=isnull(max(jzh),'0')
from zyjzdj
where ddbh=@li_ddbh select @li_row=@@ROWCOUNT
if @@error<>0
begin
select @ls_jzh='-3'/*查询就诊号错误*/
return
end if @li_row = 1
begin
select @ls_jzh=cast(cast(@ls_tjzh as decimal(13,0))+1 as varchar(13))
end
/* select @@trancount*/
BEGIN TRANSACTION
insert into zyjzdj (ddbh,jzh,ylh,cybm,xm,xb,csrq,sfz,dz,rysj,cysj,czyxm,srsj)
values (@li_ddbh,@ls_jzh,@ls_ylh,@ls_cybm,@ls_xm,@ls_xb,@ldt_csrq,@ls_sfz,@ls_jtdz,getdate(),@ldt_cysj,@ls_czyxm,getdate())
if @@error<>0
begin
select @ls_jzh='-4'/*插入就诊信息失败*/
rollback transaction
select @@trancount
return
end
commit TRANSACTION
select @@trancount
return
END
CREATE PROCEDURE dp_zyjzdj @li_ddbh int,@ls_ylh varchar(20),@ls_cybm varchar(20),@ls_czyxm varchar(20),@ldt_cysj datetime, @ls_jzh varchar(13) output
AS
BEGIN
declare @ls_tjzh varchar(13)
declare @li_row int
declare @ls_xm varchar(20)
declare @ls_xb varchar(20)
declare @ls_sfz varchar(25)
declare @ls_jtdz varchar(100)
declare @ldt_csrq datetime
select @ls_xm=xm,@ls_xb=xb,@ldt_csrq=csrq,@ls_sfz=sfz,@ls_jtdz=jtdz
from v_cbryzl_cy
where cybm=@ls_cybm
select @li_row=@@rowcount
if @@error<>0
begin
Select @ls_jzh='-1'/*查询参保人员资料错误*/
return
end
if @li_row=0
begin
select @ls_jzh='-2'/*查询不到此医疗证号*/
return
end select @ls_tjzh=isnull(max(jzh),'0')
from zyjzdj
where ddbh=@li_ddbh select @li_row=@@ROWCOUNT
if @@error<>0
begin
select @ls_jzh='-3'/*查询就诊号错误*/
return
end if @li_row = 1
begin
select @ls_jzh=cast(cast(@ls_tjzh as decimal(13,0))+1 as varchar(13))
end
/* select @@trancount*/
BEGIN TRANSACTION
insert into zyjzdj (ddbh,jzh,ylh,cybm,xm,xb,csrq,sfz,dz,rysj,cysj,czyxm,srsj)
values (@li_ddbh,@ls_jzh,@ls_ylh,@ls_cybm,@ls_xm,@ls_xb,@ldt_csrq,@ls_sfz,@ls_jtdz,getdate(),@ldt_cysj,@ls_czyxm,getdate())
if @@error<>0
begin
select @ls_jzh='-4'/*插入就诊信息失败*/
rollback transaction
select @@trancount
return
end
commit TRANSACTION
select @@trancount
return
END
解决方案 »
- 读卡器的問題
- 请帮忙推荐一款好的指纹考勤机(开发包有delphi示例)
- “伴水”在吗 我找你有事情 看到后给我留个言 谢谢你!!!!
- 常看到像::IsKindOf()、::_AfxStringFromCy()这样的函数,不知其中的符号“::”是什么意思?
- 请问大家,这个DLL加载后用什么方式卸载?FreeLibrary行不通
- 特急:我买了一张D版的<金山词霸2003>在安装时要序列号,但我找遍整个光盘都没看序列号,哪位高人有给我一个.马上送分.
- 六百里加急!大侠出马吧
- 如何在fastscript中使用指针
- stringgrid中的某个cell怎么得到焦点
- 如何使TPanel和TPageControl上的控件也能用“Enter”键改变焦点?
- dbgrid的问题
- 大家来帮我看看奇怪的TStrings
insert在触发器里被rollback了
可以判断一下@@trancount是否>0再决定是否commit或rollback