我正在寻找一种使用火鸟驱动程序在Delphi的DBX中指定自定义事务级别的方法。我使用的是Delphi XE。
在TSQLConnection组件的参数编辑器中,我可以设置各种TransIsolation值,我使用的默认值是 ReadCommited
. 该财产 WaitOnLocks
设置为 True
.我希望这使用以下火鸟事务配置,但我不确定。
READ WRITE + WAIT + SNAPSHOT
(见 http:/www.firebirdsql.orgrefdocslangrefupd20-set-trans.html)
我想使用 LOCK TIMEOUT [seconds]
而不是 WAIT
. 但我找不到如何或在哪里指定这个。我在DBX源文件中找过,有一些自定义事务级别的代码(搜索 xilCUSTOM
)但它似乎未被使用。
原因是我们在多用户的datasnap应用程序中有时会遇到死锁,我认为这是因为一个事务在等待另一个(可能是死的)事务。我们宁愿让事务在几秒钟后中断,也不愿让整个客户端无限期地挂起。