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

Ron*_*ald 13 t-sql delphi firebird transactions delphi-xe

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

在TSQLConnection组件的参数编辑器中,我可以设置各种TransIsolation值,我使用的是默认值ReadCommited.该物业WaitOnLocks将设置为True.我希望这使用以下firebird事务配置,但我不确定:

READ WRITE + WAIT + SNAPSHOT(见http://www.firebirdsql.org/refdocs/langrefupd20-set-trans.html)

我想用LOCK TIMEOUT [seconds]而不是WAIT.但我找不到如何或在何处指明这一点.我查看了DBX源文件,并且有一些自定义事务级别的代码(搜索xilCUSTOM),但它似乎未完成/未使用.

原因是我们有时会在多用户数据绑定应用程序中遇到死锁,我认为这是因为一个事务正在等待另一个(可能是死的)事务.我们宁愿在几秒钟之后让交易中断,而不是让整个客户端无限期挂断.