10

我有一个旧版 VB6 应用程序,它基于配置文件中的参数构建 DSN。该参数是一个 ODBC 连接,该连接有一个名称 (DSN-NAME),它将服务器 (DBSERVER) 映射到驱动程序(“SQL Server Native Client”)。

通常,它会像这样构建一个 DSN:

DSN=DSN-NAME;用户=foo;密码=bar

如果我在文件中指定一个主机名,它会建立一个连接字符串,上面写着

DSN=DBSERVER;用户=foo;密码=bar

报告的错误信息是:

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

这向我表明,也许有一种指定默认驱动程序的方法,这可能意味着我可以只在配置文件中指定服务器名称,而无需创建 ODBC 连接。

(我知道这些可以自动创建;这只是为了简单地安装,并满足我的好奇心)。

如何指定默认驱动程序?如果我可以将默认驱动程序设置为 SQL Server Native Client,那么我可以说 DSN=DBSERVER 并连接吗?

编辑:重点是在不更改连接字符串的情况下尝试这样做。所有的研究都表明这实际上是不可能的,但对话的措辞表明它可能是。

4

4 回答 4

4

我遇到了同样的问题,并通过使用 32 位 ODBC 管理员创建 32 位 DSN 而不是管理工具中的 64 位管理员来修复它,后者仅创建不起作用的 64 位 DSN。

32 位 ODBC 管理器位于C:\Windows\SysWOW64\odbcad32.exe

请参阅Corey Gilmore 博客上的这篇文章“未找到数据源名称且未指定默认驱动程序” 。

于 2012-11-19T12:53:04.600 回答
1

要指定默认驱动程序,请在连接字符串中使用 DRIVER=:

DRIVER=driver name here;DATABASE=mydb;USER=foo;PASSWORD=bar

驱动程序名称是显示在控制面板 ODBC 配置工具中的每个驱动程序的名称。请注意,您需要提供通常来自 DSN 的信息,在本例中为数据库名称。

于 2009-05-11T20:22:09.793 回答
1

您可以通过将“;SERVER=dbserver”附加到您的连接字符串来实现您想要的。

您的 DSN 中已经指定了一个服务器,但是您的连接字符串中的 SERVER 关键字将覆盖它。

http://msdn.microsoft.com/en-us/library/ms715433(VS.85).aspx

于 2009-05-22T19:17:33.030 回答
0

使用无 DSN 连接字符串...它可以“即时”创建以完全适合您的目的...无需使用 odbcad32.cpl 或 reg/ini 文件来控制/配置所需的 dsn。

请参阅http://support.microsoft.com/kb/147875

详情

于 2009-07-12T15:13:09.230 回答