ODBC ISAM_EOF没有任何理由

时间:2015-06-15 06:50:59

标签: c# database odbc cobol

我对ODBC驱动程序和底层COBOL数据库有一种奇怪的行为。数据库驱动程序是AcuCorp(现为Microfocus)的acuODBC,数据库本身是COBOL数据库。

DSN是一个系统DSN,工作得很好。通过Access / Excel,您可以成功地使用DSN读/写数据。

在C#中,ODBCConnection.ConnectionState已打开。恢复表头工作正常。但是在读取数据时会发生奇怪的错误。以下是跟踪日志的总结:

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

当我向WHERE语句添加SELECT clausel时会发生这种情况。当我没有添加WHERE clausel而只是整个表格时,它需要很长的时间(40000条记录大约需要12分钟),但至少我会检索数据。

所以现在我的问题是,有没有其他人用ODBC驱动程序发生这种奇怪的行为?文件结尾应该是数据吗?

正如旁注,我也联系了Microfocus,如果他们有解决方案,我会在这里发布。

1 个答案:

答案 0 :(得分:1)

似乎是Windows UAC依赖。由于我们的应用程序在兼容模式下运行,因此UAC可视化处于活动状原因是,COBOL数据库是基于文件的数据库,编码的客户端直接在ODBC DSN配置中使用这些文件,而不是运行ODBC服务器来处理请求。

因此,UAC会导致一些奇怪的行为。