Vb.net 在informix中将锁定模式设置为在执行查询之前等待

Vb.net 在informix中将锁定模式设置为在执行查询之前等待,vb.net,informix,Vb.net,Informix,在我的vb应用程序中,我有一个更新表中一列的查询。 但是因为这个数据库锁模式的属性是 将锁定模式设置为不等待 有时在运行带有更新的查询时,会出现如下错误: 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

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

将锁定模式设置为不等待

有时在运行带有更新的查询时,会出现如下错误:

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;
或者,如果这不安全,您可以向我指出其他解决方案。按照建议执行这三个操作是“安全的”,但是

  • 操作运行时,应用程序可能会无限期地阻塞
  • 如果以某种方式终止查询,但不重置锁定模式,则代码的其他部分可能会意外挂起锁定
考虑带超时的等待是否合适

如果存在线程,则在三个操作期间,每个线程都应该以独占方式访问一个连接