未找到数据源名称?

Posted

技术标签:

【中文标题】未找到数据源名称?【英文标题】:Data Source Name not found? 【发布时间】:2016-08-20 22:05:08 【问题描述】:

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

【问题讨论】:

我不知道 VB.NET 等是如何工作的,所以如果这些听起来像是一个失眠症患者的胡言乱语,那就离事实不远了(但我已经堕落了)落后于酒精消费)。听起来 Microsoft ODBC 驱动程序管理器似乎不知道 Informix ODBC 驱动程序在哪里或是什么 — 好像必须以某种方式注册此类驱动程序,并且尚未对 Informix ODBC 驱动程序采取相关步骤。我不知道这是安装失败还是其他原因。我可以拼写 Windows — L、I、N、U、X、……什么意思,那是“错误”? 【参考方案1】:

我认为您的应用程序是 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。

【讨论】:

【参考方案2】:

刚刚解决了。调试器出于某种原因选择在 X86 上工作

【讨论】:

以上是关于未找到数据源名称?的主要内容,如果未能解决你的问题,请参考以下文章

未找到数据源名称?

PYODBC--未找到数据源名称且未指定默认驱动程序

错误:[Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

Python SQLAlchemy:未找到数据源名称且未指定默认驱动程序

使用 pyodbc 导致错误:未找到数据源名称且未指定默认驱动程序

ADODB 连接 - 错误:未找到数据源名称且未指定默认驱动程序