ODBC ISAM_EOF without any reason

165 views Asked by At

I have a strange behavior with an ODBC Driver and the underlying COBOL database. The database driver is acuODBC of AcuCorp(now Microfocus), the database itself is a COBOL database.

The DSN is a system DSN and works just fine. Via Access/Excel u can read/write data with the DSN successfully.

In C# the ODBCConnection.ConnectionState is open. Retreiving the table headers works just fine. But when reading data, a strange error occurs. Here is a summerize of the trace log:

  • [Retreiving Column Headers]
  • ISAMRestrict - NO_ISAM_ERR
  • ISAMRewind - NO_ISAM_ERR
  • ISAMNextRecord – ISAM_EOF

This occurs when I add a WHERE clausel to the SELECT statement. When I do not add a WHERE clausel and just retreive the whole table, it takes incredible long (about 12 minutes for 40000 records), but at least I retreive data.

So my question would now be, has anyone else occured such a strange behavior with an ODBC driver? End of File where data should be?

Just as a side note, I have contacted Microfocus too, if they have a solution I will post it here.

1

There are 1 answers

1
Yosh Synergi On BEST ANSWER

It seems to be Windows UAC reliant. As our application run in compatibility mode, UAC visualization is active and causing may some problems. The reason for this is, that the COBOL databse is a file based database, and the client where are coding for uses these files in ODBC DSN config directly instead of running an ODBC server to handle the requests.

So the UAC leads to some strange behavior.