在 informix 中设置锁定模式以在执行查询之前等待
Setting lock mode in informix to wait before executing query
在我的 vb 应用程序中,我有一个更新 table 中的一列的查询。
但是因为这个数据库锁模式的 属性 是
SET LOCK MODE TO NOT WAIT
有时当 运行 查询更新时,我会得到这样的错误:
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;
或者,如果这不安全,您可以向我指出其他解决方案
按提示做三个操作是"safe",但是...
- 您的应用程序可能会在操作运行时无限期阻塞。
- 如果您以某种方式终止查询但不重置锁定模式,您代码的其他部分可能会意外地挂在锁上。
考虑超时等待是否合适。
每个线程(如果有线程)在三个操作期间都应该独占访问一个连接。
在我的 vb 应用程序中,我有一个更新 table 中的一列的查询。 但是因为这个数据库锁模式的 属性 是
SET LOCK MODE TO NOT WAIT
有时当 运行 查询更新时,我会得到这样的错误:
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;
或者,如果这不安全,您可以向我指出其他解决方案
按提示做三个操作是"safe",但是...
- 您的应用程序可能会在操作运行时无限期阻塞。
- 如果您以某种方式终止查询但不重置锁定模式,您代码的其他部分可能会意外地挂在锁上。
考虑超时等待是否合适。
每个线程(如果有线程)在三个操作期间都应该独占访问一个连接。