有两个DB(DB1,DB2)
我在事务中处理.
事务开始
    从DB1的table中得到一个编号,并更新这个编号.
    在DB2的tbale中插入或删除等操作.
事务结束1.问题是我在DB1中如果调用procedure,即commandtext="proc1"
执行完后在后面的步骤出现问题时,能不能正确回滚?
如果是用commandText="create procedure proce ......" 呢?是不是会有所不同?
2.如果我不用procedure,而直接用SQL语句(读取与更新时都锁定),如何锁定表?因为我在这个事务完成之前不能让别人读取到这个数据(即DB1.table的编号),脏读是不允许的.除非我的整个事务成功.
3.大家有什么建议?本人学生一个,有太高深的请高手深入淺出的给讲一下,谢谢 :)

解决方案 »

  1.   

    怎么这么冷呢?:(1.我想说的是按我们学的,procedure是在执行完后自行提交的.那么procedure写在数据库中或是写在页面中是否有区别呢?如没区别,那么事务是不能恢复已经提交的部分的.2.如果是这样,我改用语句,那么如何在此过程中锁定表呢?我找的一些例子要么是在DB内用procedure,要不用application变量控制,还有线程同步(没搞过:0).有没有简单高效一点的方法?
       如何处理并发问题,即在锁定的同时给另外的人一个友好的错误提示(即捕获这个异常).
       大家也讨论一下啊.或者有这方面经验的前辈给展示一下解决方法.
      

  2.   

    各位老大,在DB1里我要的其实是取出一个增长编号,取出后加一.我要求能在事务过程中锁定的.
    因为会出现同时几个人取编号并更新的问题.这样如果出现错误,在允许读到的情况下,大家都+1,出现异常时便会出现丢失编号的问题.双数据库使用COM+的事务机制,没做过:<  如果两个数据库不行,我就只好走些弯路强行并到一个DB中去了(以后就要用人工啊).有没有简单易行点的啊.现在实习做东东,没时间给我去仔细研究了.大家伙多给点意见!