2014-10-02 45 views
2

我完成了在我的计算机中创建服务器和客户端ODBC对象到Cobol数据库的过程,并将客户端命名为PARSECCLI。向相对客户端创建OdbcConnection

我测试了连接,它工作。我可以通过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 

我应该使用不同类型的连接类型还是缺少连接字符串中的某些内容?

+1

什么是应用程序的目标CPU?要使用的ODBC管理器根据操作系统位数和应用程序位数的不同而不同。 – Steve 2014-10-02 14:02:04

+0

Oooooooh我忘记了这一点,你说得对,我已经读到这是一个问题。我有我的目标CPU为“任何CPU”。将它更改为X86解决了第一个连接字符串的问题 - 但第二个现在给我“ERROR [01000] [Microsoft] [ODBC Driver Manager]驱动程序不支持应用程序请求的ODBC行为版本(请参阅SQLSetEnvAttr)。 错误[01S00] [Liant] [相对性]连接字符串属性无效。“ – ConnorU 2014-10-02 14:08:19

+0

@Steve如果你可以帮助第二个字符串的新错误,那将是很好的,但是我可以使用第一个错误,所以如果你想写你的评论作为答案,我会接受它,这个问题可以标记为解决了。谢谢! – ConnorU 2014-10-02 14:14:31

回答

2

ODBC管理员(odbcad32.exe)程序在64位系统上有两个版本。默认的(在管理工具中出现的)是64位版本,并创建可由64位程序(或在64位操作系统上运行的AnyCPU程序)使用的DSN名称。

如果您希望您的DSN可由32位程序使用,请使用位于的c:\ windows \ SysWOW64文件夹中的ODBC管理器创建它。

当然,您的应用程序应通过BUILD - > Configuration Manager,Active Solution Platform使用合适的目标CPU

可悲的是我没有答案的第二个问题,但我希望第一个是足以让你继续你的程序