【发布时间】:2018-01-17 11:59:21
【问题描述】:
我有一个 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 的更改总是被提交。
【问题讨论】:
-
您的图书馆需要支持交易。它没有。你不能从外面嫁接它。听起来您应该将所有代码移植到 C#。
标签: c# delphi dll dispose transactionscope