2014-01-07 37 views
0

我遇到以下問題煩惱:與DSN連接(Win64的應用程序,以一個32位的Postgres服務器)

我們有一個32位的Postgres服務器在這裏的辦公室。 我正在開發在Visual Studio 2013的應用程序,在64位的Windows 8 當我運行應用程序,我得到以下錯誤:

ERROR [IM014] [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application

我已經安裝了兩個驅動器(32位和64位)的ODBC,但我的64位驅動程序,當我嘗試通過VS連接到服務器時,它會引發與上面相同的錯誤,並且只有32位驅動程序可以通過VS連接。

在VS2013中,我可以看到服務器的表和配置,但是當我運行時,更具體的是,在Connection.Open()部分中,拋出了以前的異常。

有人可以幫我嗎? (對不起,英文錯誤...)

+0

我想你會發現Visual Studio是一個32位應用程序,因此可以不使用64位ODBC驅動程序。使用Visual Studio編譯爲64位可執行文件的程序可以並且必須使用64位ODBC驅動程序,即使通過Visual Studio運行時也是如此。 –

+0

是的,沒錯。我發現錯誤:32位驅動程序是好的,但我的解決方案配置爲64位調試。我將配置更改爲32位,它工作正常。我確信我之前已經改變過它,但是當我再次看時,事實並非如此。 – 00lenon

回答

1

即使安裝在64位Windows上,大多數Visual Studio應用程序構建也是32位。

如果您的Visual Studio是32位的,您必須使用32位ODBC驅動程序在Visual Studio中自行完成ODBC通信。

在Visual Studio中編譯的64位應用程序進行ODBC通信時,您可以(也必須)仍使用64位ODBC驅動程序。

即使您使用的是64位Windows,也可以編譯和運行32位應用程序,在這種情況下,您必須使用32位ODBC驅動程序。

有趣,不是嗎?

相關問題