各位大俠,在做數據處理的時候,存儲過程如何控制它的事務執行.
我用的是bde.我做了一個數據保存,裡面用到一個存儲過程,但是在保存的時候,遇到問題,希望其回滾.不知道如何去做.

解决方案 »

  1.   

    一个带事务处理的存储过程的例子(有删节,主要先是事务处理就行了)CREATE PROCEDURE u_cdyk @salercode char(4),@ck char(2),@ck2 char(2),@p_code char(14),@quantity real ,@quan real,@amou float,@tag char(1),@ykdate char(10),@bz char(20) OUTPUT  AS
    set @bz='备注'BEGIN TRANSACTION  /////////////开始事务处理
    --更新库存表stk
    begin
    INSERT INTO stk (salercode,ck,p_code,quan_sot,amou_sot,quan_in,amou_in,quan_out,amou_out,quan_eot,amou_eot)VALUES (@salercode,@ck2,@p_code,@quantity,round((@amou*@quantity)/@quan,2),0,0,0,0,@quantity,round((@amou*@quantity)/@quan,2))  if( @@rowcount!=1)
        begin
          set @bz='更新出错'
          ROLLBACK TRANSACTION //////////事务处理回滚
          return
        end  COMMIT TRANSACTION /////////事务处理结束的地方
     end
      

  2.   

    begin Tran tranName  --定义事务开始--事务处理过程语句if @@error <> = 0 
    begin
      rollback tran TranName   --在出错时让事务回滚
    endcommit tran Tranname  --执行事务
      

  3.   

    begin
      rollback tran TranName   
    end
    你只要在出错时让事务回滚撒
    你还想要什么的回滚咯,不是地上滚吧