我正在使用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
它返回此错误:
错误[IM002] [Microsoft] [ODBC驱动程序管理器]未找到数据源名称且未指定默认驱动程序。
我已经检查了驱动程序的名称并且它是正确的,并且驱动程序已正确安装,因为我以前使用它没有任何问题。 这是我尝试运行的代码,它只是与之前合作的数据库的连接:
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
答案 0 :(得分:0)
我认为您的应用程序是64位,您安装并配置了32位ODBC驱动程序,反之亦然。
如果您安装了Informix驱动程序,那么在ODBC驱动程序管理器中配置DSN(当然还有成功的连接测试)并尝试使用更简单的ConnectionString的DSN,如:
test_odbc('DSN=ifx_test; Uid=username; Pwd=password;')
您还可以查看显示可用ODBC源的Python配方:https://code.activestate.com/recipes/578782-printing-list-of-odbc-data-sources/?in=user-186902
您可以使用32位和64位Python解释器运行它(我更喜欢带有odbc
模块的ActiveState)并查看每个环境可用的DSN。
答案 1 :(得分:0)
刚刚解决了。调试器出于某种原因选择在X86上工作