您的位置:程序门 -> delphi -> 数据库相关



事务中的存储过程


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


事务中的存储过程
发表于:2007-05-16 11:23:28 楼主
with   adoconnection1   do
    begin
        begintrans;
        try
            ...
            //调用存储过程,取得数据表中的序列号id,然后id值加1,存储过程中也       含有事务    
            committrans;
        except
            rollbacktrans;
        end;

    如果adoconnetion1中的事务不能提交的话,存储过程的事务也不能提交,即id值取出后不能加1。如何解决这个问题?
发表于:2007-05-16 11:31:381楼 得分:0
那就去掉你存储过程中的事务吧!
发表于:2007-05-16 14:37:542楼 得分:0
一般情况下,事务在存储过程中使用,delphi中不会你这样使用的。
发表于:2007-05-17 13:18:323楼 得分:0
现在是必须这样操作。在一个事务中,要取得某个数据表的id值,可能要通过循环取若干个id值,所以调用存储过程取id值必须放到事务当中。
发表于:2007-05-17 13:59:524楼 得分:0
存储过程和调用者用的是一个事务,没必要在存储过程里加事务
发表于:2007-05-18 10:37:205楼 得分:0
如果想让序列号加1的功能不受程序中的其它事务影响该如何操作?,也就是说只要读出序列号,那么它存储的值必须加1,就如同oracle的sequence一样。


快速检索

最新资讯
热门点击