在informix中设置锁定模式以在执行查询之前等待

时间:2017-08-29 14:01:21

标签: vb.net informix

在我的vb应用程序中,我有一个更新表中一列的查询。 但是因为这个数据库锁定模式的属性是

SET LOCK MODE TO NOT WAIT

有时在使用update运行查询时会出现如下错误:

SQL ERR: EIX000: (-144) ISAM error: key value locked
EIX000: (-245) Could not position within a file via an index. (informix.table1)

我的问题是,执行是否安全:

1st SET LOCK MODE TO WAIT;

 2nd the update query;

 3rd SET LOCK MODE TO NOT WAIT;

如果这不安全,你可以指出我的其他解决方案

1 个答案:

答案 0 :(得分:2)

安全"按照建议进行三项操作,但......

  • 您的应用程序可能会在操作运行时无限期地阻止。
  • 如果您以某种方式终止查询但未重置锁定模式,则代码的其他部分可能会意外挂起锁定。

考虑使用超时等待是否合适。

如果有线程,每个线程在三次操作期间应该对一个连接具有独占访问权限。