我的存储过程是:
create procedure ProupdateMasterOutStoreroomTable_On_OutStoreroomDdID
@MasterName varchar(200), --原料名称
@MasterDanw varchar(200), --单位
@BetweenMasterNumber money --数量
AS
begin
begin tran
if exists(select * from MasterStoreroomTable
where (MasterName=@MasterName) and (MasterDanw=@MasterDanw)
and (MasterNumber>=-(@BetweenMasterNumber)))
begin
update MasterStoreroomTable
set MasterNumber=MasterNumber+@BetweenMasterNumber
where MasterName=@MasterName and MasterDanw=@MasterDanw
if @@error<>0 or @@rowcount<>1
begin
raiserror('失败',16,1)
rollback tran
return
end
end
else
begin
raiserror('错误库存不够',16,1)
rollback tran
return
end if @@error=0
commit tran
else
rollback tran
end GO我在 delphi 调用ADOStoredProc1.Close;
ADOStoredProc1.ProcedureName:='ProupdateMasterOutStoreroomTable_On_OutStoreroomDdID';
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.Parameters.CreateParameter('@MasterName',ftstring,pdinput,200,DataModuleForm.ADOStoredProc2.Fieldbyname('MasterName').AsString);
ADOStoredProc1.Parameters.CreateParameter('@MasterDanw',ftstring,pdinput,200,DataModuleForm.ADOStoredProc2.Fieldbyname('MasterDanw').AsString);
ADOStoredProc1.Parameters.CreateParameter('@BetweenMasterNumber',ftcurrency,pdinput,8,BetweenMasterNumber);
DataModuleForm.ADOStoredProc1.Prepared:=true;
try
DataModuleForm.ADOStoredProc1.ExecProc;
Application.MessageBox('操作成功', '提示信息', MB_ICONQUESTION or MB_DEFBUTTON2) ;
except
on e:exception do
showmessage(e.Message);end;本来应该是 库存不够的可是运行时 show 出的还是 操作成功 ,这是怎么回事啊?
我希望的 show 错误库存不够谢谢!
create procedure ProupdateMasterOutStoreroomTable_On_OutStoreroomDdID
@MasterName varchar(200), --原料名称
@MasterDanw varchar(200), --单位
@BetweenMasterNumber money --数量
AS
begin
begin tran
if exists(select * from MasterStoreroomTable
where (MasterName=@MasterName) and (MasterDanw=@MasterDanw)
and (MasterNumber>=-(@BetweenMasterNumber)))
begin
update MasterStoreroomTable
set MasterNumber=MasterNumber+@BetweenMasterNumber
where MasterName=@MasterName and MasterDanw=@MasterDanw
if @@error<>0 or @@rowcount<>1
begin
raiserror('失败',16,1)
rollback tran
return
end
end
else
begin
raiserror('错误库存不够',16,1)
rollback tran
return
end if @@error=0
commit tran
else
rollback tran
end GO我在 delphi 调用ADOStoredProc1.Close;
ADOStoredProc1.ProcedureName:='ProupdateMasterOutStoreroomTable_On_OutStoreroomDdID';
ADOStoredProc1.Parameters.Clear;
ADOStoredProc1.Parameters.CreateParameter('@MasterName',ftstring,pdinput,200,DataModuleForm.ADOStoredProc2.Fieldbyname('MasterName').AsString);
ADOStoredProc1.Parameters.CreateParameter('@MasterDanw',ftstring,pdinput,200,DataModuleForm.ADOStoredProc2.Fieldbyname('MasterDanw').AsString);
ADOStoredProc1.Parameters.CreateParameter('@BetweenMasterNumber',ftcurrency,pdinput,8,BetweenMasterNumber);
DataModuleForm.ADOStoredProc1.Prepared:=true;
try
DataModuleForm.ADOStoredProc1.ExecProc;
Application.MessageBox('操作成功', '提示信息', MB_ICONQUESTION or MB_DEFBUTTON2) ;
except
on e:exception do
showmessage(e.Message);end;本来应该是 库存不够的可是运行时 show 出的还是 操作成功 ,这是怎么回事啊?
我希望的 show 错误库存不够谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货