找不到数据源名称?

时间:2016-08-20 22:05:08

标签: vb.net odbc connection-string informix dsn

我正在使用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

2 个答案:

答案 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上工作