我的存储过程是:
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   错误库存不够谢谢!