从c#TransactionScope处理delphi DLL更改

时间:2018-01-17 11:59:21

标签: c# delphi dll dispose transactionscope

我有一个Delphi DLL,它打开与数据库的连接,进行一些更改并提交更改,如果一切正常。

DelphiDLLMethod("testingParameter");

我想从c#项目中调用DLL。在这个项目中,我想对同一个数据库进行一些更改,但是如果出现问题,我想回滚所有更改,我的代码中的更改以及Delphi DLL的更改。

using (TransactionScope txn = new TransactionScope())
{
    try
    {
        result = DLLMethod("testingParameter");
        MakeSomeDatabaseChangesFromThisProject();

        txn.Complete();
    }
    catch
    {
        txn.Dispose();
    }
}

我正在使用TransactionScope和Dispose方法进行测试,我想证明,如果我的代码出现问题,则更改处置。但是DLL的更改总是被提交。

1 个答案:

答案 0 :(得分:1)

除非Delphi库明确提供了一种机制来处理它创建的事务(如果有的话),否则它将不能,因为它将与外部(C#)端隔离。