找不到数据源名称,并且没有由错误的TargetCPU设置导致的默认驱动程序指定错误

时间:2014-05-14 18:25:37

标签: vb.net visual-studio odbc adodb

这个让我疯狂,但我找到了一个我在网上其他地方找不到的hacky解决方案。

解决方案:将目标CPU更改为x86以避免32位/ 64位的已知ODBC问题。

我不知道如何修复它,因此您可以使用AnyCPU或64位。只要我使用ODBC,目前我似乎被困在32位。奇怪的是运行实际代码的外部库是使用AnyCPU编译的。但消费项目需要在X86中。

我不会将此标记为答案,因为有太多悬而未决的问题。

关于将事情置于上下文中的特定问题的背景:

我有一个使用我构建的外部库的项目。这个库仍然使用ADODB很多。我的项目做了很奇怪的事情所以我从头开始重新构建它,保留尽可能多的默认设置以帮助调试它。

好吧,外部库中的ADODB.Connection.Open()函数失败并出现上述错误。旧项目运作良好。新项目引发了错误。区别在于目标CPU。

我一直看到64位对比32位DSN的引用,我知道这些(据说)但我的DSN更少。

我的外部库被编译到AnyCPU,我还有其他使用它的项目也在AnyCPU中编译但我认为我没有在其他项目中遇到ADODB代码所以从未遇到过它。

2 个答案:

答案 0 :(得分:0)

点击此处查看我的问题:https://stackoverflow.com/questions/23678723/applications-namespace-becomes-unavailable-as-an-object-datasource-after-switchi

听起来我们遇到了类似的问题,但是我没有使用ODBC,AnyCPU似乎对我有用。它只是x64有问题。如果我发现任何事情,我会告诉你的。

答案 1 :(得分:0)

使用像OleDb这样的COM类型提供程序的ODBC不可用,因为COM仅在32位模式下受支持。