2014-10-02 32 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

可悲的是我沒有答案的第二個問題,但我希望第一個是足以讓你繼續你的程序