C#ODBC驱动程序在Win10上运行正常但在Win7

时间:2017-11-29 15:07:39

标签: c# windows-7 odbc paradox

我遇到了一个旧的用于Paradox数据库的ODBC驱动程序的问题(Intersolv ODBC Paradox驱动程序)。我有一个应用程序在数据库的主程序运行时读取和写入数据到Paradox数据库。我之前遇到过MS Paradox驱动程序的问题。现在使用此驱动程序一切正常,我可以同时在数据库上工作。我的问题是这只适用于Windows 10.对于Win7,我在尝试打开数据库时遇到错误(SQLAllocHandle错误)。如果我关闭主程序,驱动程序工作。我尝试使用Windows服务访问数据库并且可以在Win7上运行我可以在主程序打开时访问数据。

我尝试使用Adminrights打开应用程序并使用Psexec System acc启动它。主程序打开时始终出现相同的错误。有谁知道Win7和Win10之间的区别是什么?都是64位。

1 个答案:

答案 0 :(得分:0)

我在64位系统上遇到了同样的问题,试图在原始Delphi应用程序运行时打开一个Paradox表来读取数据。使用Microsoft Paradox驱动程序,我会得到"外部表格不是预期的格式"我尝试执行ODBC DataReader时出错,如果我使用了Intersolv驱动程序,则会在尝试打开连接时出现相同的SQLAllocHandle错误。

我在这篇帖子的评论中找到了:

Paradox Table - Oledb Exception: External table is not in the expected format

在静态对象中建立连接会产生差异。在我的应用程序中,我将数据库连接和查询代码移动到静态类,然后它开始工作。这可能就是您提到的Windows服务能够读取您的数据的原因。

我不确定为什么Win7和Win10之间存在差异,但我怀疑它在尝试打开PDOXUSRS.LCK文件时是一个线程权限问题。

希望这会对你有所帮助。