我的程序是用Delphi和SQL server开发的,现在需要和服务器端的Oracle数据库进行数据交换,具体需要完成下面几件事情:
1:根据SQL server中的一个表和Oracle中的一个表的信息更新Oracle中另外一个表(这个问题我通过在SQL server中建立链接服务器已经解决,但是不知道有没有更好的办法)。
2:以SQL server表中一个表A中某一个字段的值做参数,调用Oracle的存储过程,并将输出参数写入到SQL server中表A的另外一个字段中(由于在链接服务器中看不到Oracle的存储过程,所以我另外建立了一个ADOconnection来链接Oracle,然后遍历SQL server中表A中每一条记录,依次调用Oracle的存储过程,将输出参数写入到SQL server中另外的一个表里面,最后再用这个表来更新表A)
我现在的问题是,如果中间没有异常出现的话,这样的逻辑好像是可行的(希望能有更好的办法),但是如果有异常出现的话,这时候事务能保证什么,SQL server这边回滚,Oracle那边会不会回滚?如果不能回滚,对我这个程序来说,是不能容忍的。
请大家帮忙,分享一些经验,谢谢。