指定ODBC的默认驱动程序

crb*_*crb 8 vb6 odbc adodb dsn

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

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

DSN = DSN-NAME;用户= FOO;密码=栏

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

DSN = DBSERVER;用户= FOO;密码=栏

报告的错误消息是:

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

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

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

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

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

小智 5

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

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

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

  • @AstralisSomnium 这是链接博客文章的存档:http://web.archive.org/web/20120623001206/http://coreygilmore.com/blog/2010/04/14/odbc-driver-manager-data-未找到源名称且未指定默认驱动程序/ (3认同)

小智 1

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

DRIVER=driver name here;DATABASE=mydb;USER=foo;PASSWORD=bar
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,但对我来说,这不是“默认”驱动程序,而是“用户指定”驱动程序。 (5认同)