Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi DBX firebird中的自定义事务级别_Delphi_Transactions_Firebird_Delphi Xe - Fatal编程技术网

Delphi DBX firebird中的自定义事务级别

Delphi DBX firebird中的自定义事务级别,delphi,transactions,firebird,delphi-xe,Delphi,Transactions,Firebird,Delphi Xe,我正在寻找一种使用firebird驱动程序在Delphi的DBX中指定自定义事务级别的方法。我正在使用DelphiXE 在TSQLConnection组件的参数编辑器中,我可以设置各种TransIsolation值,并使用默认值readcommitted。属性WaitOnLocks设置为True。 我预计这将使用以下firebird事务配置,但我不确定: 读写+等待+快照(请参阅) 我想使用锁定超时[秒]而不是等待。但我找不到如何或在哪里指定这一点。我查看了DBX源文件,其中有一些用于自定义事务

我正在寻找一种使用firebird驱动程序在Delphi的DBX中指定自定义事务级别的方法。我正在使用DelphiXE

在TSQLConnection组件的参数编辑器中,我可以设置各种TransIsolation值,并使用默认值
readcommitted
。属性
WaitOnLocks
设置为
True
。 我预计这将使用以下firebird事务配置,但我不确定:

读写+等待+快照
(请参阅)

我想使用
锁定超时[秒]
而不是
等待
。但我找不到如何或在哪里指定这一点。我查看了DBX源文件,其中有一些用于自定义事务级别的代码(搜索
xilCUSTOM
),但它似乎未完成/未使用


这是因为我们在多用户datasnap应用程序中有时会遇到死锁,我认为这是因为一个事务正在等待另一个(可能是死的)事务。我们希望事务在几秒钟后中断,而不是让整个客户端无限期挂起。

下面的文档
此外,TSQLConnection允许您指定特定于数据库的自定义隔离级别。自定义隔离级别由dbExpress驱动程序定义。有关详细信息,请参阅驱动程序文档。
您是否考虑购买有文档记录的interbase驱动程序?或者使用更多的本机称呼,如IBDAC或IB对象(+性能+兼容性+支持)?除了等待超时问题之外,绝对要确保了解应用程序中发生的死锁情况。这意味着有缺陷的事务逻辑、长时间运行的事务、触发器的不安全使用等,这些都会随着时间、超时与否而变得更糟。