我有一个使用FirebirdSQL连接到Firebird 2.5 DB的WinForms应用程序。 在这个应用程序中,我有一个FBConnection,我用它来与DB交互,一个控件提供用于编辑DB的按钮,文本框等,以及各种事件处理程序。 当此控件加载时,我通过调用FBConnection实例的BeginTransaction()方法创建一个新事务。 因此,当用户与控件(按钮)交互时,我正在调用更改DB中的值的方法(通过调用存储过程或执行SQL语句),如下所示:
FbCommand command = new FbCommand(cmd_text, connection);
command.Transaction = transaction;
FbDataReader reader = command.ExecuteReader()
当用户决定将他所做的所有更改应用到数据库时,他点击我的控件上的“应用”按钮,调用transaction.Commit()或调用transaction.Rollback()的“取消”按钮。
这很好但突然间我遇到了在我的应用程序中使用多个事务的问题。如果在一个应用程序中同时使用多个编辑控件,则看起来您无法在一个连接中创建和使用多个事务。
我的问题是 - 我不知道如何使用一个连接创建多个并行事务。我开始相信FirebirdSQL是不可能的。似乎唯一的解决方案是为每个活动事务创建与DB的新连接,但我真的不喜欢这种方式。
如果我在使用FirebirdSQL中的事务时错了,或者任何人都知道如何解决我的问题而不是创建与DB的多个连接,我会很感激这些建议。
答案 0 :(得分:1)
考虑以下情况:
答案 1 :(得分:0)
Firebird(当然,也是Interbase)支持一个连接中的多个事务。
允许一些提供商使用此功能。
请看这里:http://www.ibprovider.com/eng/examples/lcpi_oledb_net__c001__example_0017.html