通过ODBC DSN将Visual Studio连接到Virtuoso 7.1时的体系结构不匹配异常

时间:2014-12-04 08:25:34

标签: visual-studio-2012 odbc virtuoso

我知道之前已经回答了类似的问题,但我似乎无法清除我的特殊问题。 当Db-driver和VS-project具有不同的平台目标(32,64位)时,会提示架构不匹配异常。到目前为止一切都很好。

我尝试的第一件事: 我将整个解决方案的平台目标更改为32,之后更改为64位。 - >在这两种情况下都是相同的错误(我不确定在哪种情况下VS认为项目属于特定架构。也许有人可以详细阐述这一点......)

现在我专注于Virtuoso 7.1的驱动程序和DSN。 按照安装Virtuoso(link)的开源版本的说明,我使用'regsvr32 virtodbc.dll'在/ lib中注册了驱动程序。这迅速将其添加为32位驱动程序(使用system32 / odbcad32.exe时可见)。在DSN中使用此驱动程序提供了体系结构不匹配。

我尝试使用64位版本的regsvr32注册与64位驱动程序相同的dll,但没有成功。由于我无法添加合适的64位DSN,因此我将满足于使用32位目标cpu。如上所述,看似32位版本的virtodbc.dll导致VS中任何目标平台配置下的架构不匹配。

我甚至安装了客户端连接工具包(link),它声称只提供64位驱动程序。只是发现自动安装的驱动程序和DSN也具有32位驱动程序(意思是:它们只在使用32位版本的odbcad32.exe而不是64位版本时才可见)

我不确定问题所在(VS或Virtuoso司机),我会感谢您的建议。

2 个答案:

答案 0 :(得分:1)

我认为您可以尝试从Virtuoso 6.4 Client Connectivity Kit安装32位ODBC驱动程序。

P.S。

  • 64位ODBC应用程序需要64位ODBC驱动程序(和64位ODBC驱动程序管理器)
  • 32位ODBC应用程序需要32位ODBC驱动程序(和32位ODBC驱动程序管理器)

你不能混合它们。

答案 1 :(得分:1)

我不太确定我明白你的问题是什么?

Visual Studio安装的位是什么,即32位还是64位?

system32 / odbcad32.exe是64位ODBC驱动程序管理器,尽管是“system32”引用,这是Microsoft从32位Windows日期保留的历史文件夹,将实际的32位二进制文​​件放在sysWOW64文件夹中的64位系统上。

在最后的64位Visual Studio中,我使用的开发环境实际上是32位,部署是64位,需要32位和32位。用于开发和部署的64位驱动程序,请参阅http://wikis.openlinksw.com/dataspace/owiki/wiki/UdaWikiWeb/MsSqlOn64bitWin

由于Virtuoso 7仅提供64位格式且Virtuoso 6 ODBC驱动程序(以及一般数据访问客户端)与Virtuoso 7服务器兼容,因此您可以安装Virtuoso 6商业广告(如Sergei所述)或开源({ {3}})32&然后,64位ODBC驱动程序和VS应该正常工作,因为它有一个用于开发,一个用于部署。