2016-08-20 74 views
0

我正在使用vb.net並嘗試連接到Informix數據庫。 系統和服務器都處於64位模式,文件DSN來自64位ODBC數據源。 字符串是這樣的:DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=userid;PWD=password;DATABASE=database;HOST=host;SERVER=server;SERVICE=9088;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.819找不到數據源名稱?

它返回此錯誤:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified.

我已經檢查了司機的名字,它是正確的,並且正確安裝驅動程序,因爲我已經使用它之前沒有問題。 這裏是我試圖運行的代碼,它只是這之前已經爲我工作與數據庫的連接:

Imports System.Data.Odbc 

Public Class Form1 

    Dim x As New OdbcConnection 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim constr As String = "DRIVER={IBM INFORMIX ODBC DRIVER (64-bit)};UID=uid;PWD=passwd;DATABASE=database;HOST=host;SERVER=server;SERVICE=9088;PROTOCOL=onsoctcp;CLIENT_LOCALE=en_US.CP1252;DB_LOCALE=en_US.819" 
     Try 
      x.ConnectionString = constr 
      x.Open() 
      x.Close() 
      Console.WriteLine("Connection Succesful") 
     Catch ex As Exception 
      Console.WriteLine("Connection Unsuccesful: " & ex.Message & Environment.NewLine & "Check input data") 
     End Try 
    End Sub 
End Class 
+1

我不知道如何VB.NET等工作,所以如果這些聽起來像睡眠剝奪dipsomaniac的raving ma聲,它不是太遙遠的事實(但我在飲酒方面落後了)。聽起來好像Microsoft ODBC驅動程序管理器不知道Informix ODBC驅動程序的位置或內容 - 就好像這些驅動程序必須以某種方式進行註冊並且尚未對Informix ODBC驅動程序執行相關步驟一樣。我不知道這是否是安裝失敗或其他。我可以拼寫Windows - L,I,N,U,X,... whaddya的意思是,這是'錯誤的'? –

回答

0

我覺得你的應用程序是安裝並配置32位ODBC驅動程序,或64位反之亦然。

如果再安裝Informix驅動程序在ODBC驅動程序管理器配置DSN(當然有成功的連接測試),並嘗試使用DSN與像更簡單的ConnectionString:

test_odbc('DSN=ifx_test; Uid=username; Pwd=password;') 

你還可以看到我的Python食譜顯示可用的ODBC源代碼:https://code.activestate.com/recipes/578782-printing-list-of-odbc-data-sources/?in=user-186902

您可以使用32位和64位Python解釋器(我更喜歡odbc模塊附帶的ActiveState)運行它,並查看每個環境可用的DSN。

0

剛剛解決它。調試器選擇工作在X86出於某種原因