指定 ODBC 的默认驱动程序

问题描述 投票:0回答:4

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

一般来说,它构建的DSN是这样的:

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

如果我在文件中指定主机名,它会构建一个连接字符串,其中显示

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

报错信息为:

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

这对我来说可能有一种指定默认驱动程序的方法,这可能意味着我可以只在配置文件中指定服务器名称,而不需要创建 ODBC 连接。

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

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

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

vb6 odbc adodb dsn
4个回答
5
投票

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

32 位 ODBC 管理器位于

C:\Windows\SysWOW64\odbcad32.exe

参见这篇文章“未找到数据源名称且未指定默认驱动程序”


1
投票

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

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

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


1
投票

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

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

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


0
投票

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

参见 http://support.microsoft.com/kb/147875

了解详情

© www.soinside.com 2019 - 2024. All rights reserved.