我有一个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的更改总是被提交。
答案 0 :(得分:1)
除非Delphi库明确提供了一种机制来处理它创建的事务(如果有的话),否则它将不能,因为它将与外部(C#)端隔离。