When I try to access records on an Informix database that are not yet committed, I'm getting an error ("[Error Code: -245, SQL State: IX000] Could not position within a file via an index. 2) [Error Code: -144, SQL State: IX000] ISAM error: key value locked").
I know I need to set the isolation mode and so doing this (in SQL Commander) works - e.g. this is OK:
set isolation to dirty read;
select * from sp_cn_chg where chg_code = 'POST';
However, I have actually entered "set isolation to dirty read;" into "Database Connection Hooks", "Run SQL at Connect" setting on the properties tab for the connection and so I don't understand why I need to explicitly add it into the SQL Commander session.
I can see in the logs that the the "set isolation" command is actually run:
2016-05-25 17:26:41.553 FINE 697 [ExecutorRunner-pool-2-thread-1 - AbstractFacade.executeCommand] Executing 'SET ISOLATION TO DIRTY READ'
2016-05-25 17:26:41.553 FINE 697 [pool-3-thread-1 - B.?] DefaultEditor21: IfxStatement.execute("SET ISOLATION TO DIRTY READ")
...but the SQL executed fails:
2016-05-25 17:26:41.570 FINE 697 [pool-3-thread-1 - B.?] DefaultEditor21: IfxStatement.execute("select * from sp_cn_chg where chg_code = 'POST'")
2016-05-25 17:26:41.580 FINE 697 [pool-3-thread-1 - B.?] DefaultEditor21: EXCEPTION -> java.sql.SQLException: Could not position within a file via an index.
NB: This behaviour also means I can't look at the records in the "Data" tab for table that currently has uncommitted data (which is actually the biggest issue I face) . It's no real problem just adding "set isolation to dirty read;" to my SQL Commander session, but I mainly use the "Data" tab to browse table data...
I just wanted to let you know that we have released DbVisualizer 9.5 today with a fix for the issue you reported. Please upgrade to the latest official version. Easiest is that you open Help->Check for Update in DbVisualizer to perform the upgrade.
An alternative is that you download from our web site: