【发布时间】:2011-03-29 16:18:32
【问题描述】:
我有几个用 VB6 编写的应用程序,它们都在同一台机器上使用相同的连接字符串。他们使用带有 SQL Server Native Client 10.0 驱动程序的 ODBC 提供程序并使用显式用户名和密码进行连接。
在运行时,当我尝试连接到数据库时,其中一个应用程序抛出异常:
3706:找不到提供程序。它可能没有正确安装。
我不明白为什么这个应用程序在其他应用程序正常工作时出现问题。参考是相同的,直到版本号。
【问题讨论】:
-
您必须提供更多详细信息。您是否真的在使用带有 ODBC 驱动程序的 MSDASQL 提供程序(如果是,为什么?)或实际的 OLEDB 提供程序 SQLNCLI10.1?
-
它们都是遗留应用程序,我在不到一个月前才接管它们,所以我还没有时间重写。我选择了现有的连接字符串,因为在所有其他连接字符串中,它们工作正常,并且在主要是 Windows Embedded 环境中工作,在咨询我们的操作系统/硬件人员之前,我尝试尽可能少地进行更改。我确实发现删除驱动程序声明可以解决问题;虽然我觉得这很令人困惑,因为它不是将 ODBC 与 SQL Native Client 10.0 一起使用吗?
-
很难说没有看到连接字符串。人们做了很多事情,迫使 ADO 和 Provider 猜测您的要求。据我所知,它与各个级别的默认值有关。当 ADO 是您选择的连接器技术时,使用 ODBC 会强制您使用至少 4 层软件,而使用 OLEDB 可以将其减少到 3 层。当然,我假设 ADO,您可能正在使用其他软件(DAO/RDO?)。
标签: vb6 odbc sql-server-native-client