我经历了在计算机中创建服务器和客户端ODBC对象到Cobol数据库的过程,并将客户端命名为PARSECCLI。
我测试了连接并且它有效。我可以通过Microsoft Query获取数据集(我无法将Sql Server Management Studio作为链接服务器或其他任何东西连接到它,但这是一个单独的问题)。
我还可以通过Visual Studio的向导创建与它的数据源连接,并且连接测试成功。它创建了这个连接字符串:
Dsn=PARSECCLI;uid=.;codepage=1252
但是,如果我尝试为该字符串创建一个OdbcConnection并打开它 - 我的最终目标是能够在数据库上运行查询并从中提取数据集 - 我明白了:
System.Data.Odbc.OdbcException (0x80131937): ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application
如果我从This question获取建议并将我的连接字符串更改为:
OdbcConnection dbConnection = new OdbcConnection("DRIVER={Relativity Client};ServerName=192.168.0.109.1583;DSN=PARSECCLI;UID=.;codepage=1252"); //The local IP I set to static when I created the client and server odbc Data Sources.
我明白了:
System.Data.Odbc.OdbcException (0x80131937): ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
我应该使用不同类型的连接类型,还是我错过了连接字符串中的某些内容?
答案 0 :(得分:2)
ODBC管理员( odbcad32.exe )程序在64位系统上有两个版本。默认值(管理工具中存在的版本)是64位版本,并创建可由64位程序(或在64位操作系统上运行的AnyCPU程序)使用的DSN名称。
如果您希望您的DSN可由32位程序使用,请使用 c:\ windows \ SysWOW64 文件夹中提供的ODBC管理器创建它。
当然,您的应用程序应使用适当的目标CPU 通过BUILD - > Configuration Manager,Active Solution Platform。
可悲的是,我对第二个问题没有答案,但我希望第一个问题足以让你继续你的计划