VB6“;找不到提供程序。”;

VB6“;找不到提供程序。”;,vb6,odbc,sql-server-native-client,Vb6,Odbc,Sql Server Native Client,我有一些用VB6编写的应用程序,它们都在同一台机器上使用相同的连接字符串。他们将ODBC提供程序与SQL Server本机客户端10.0驱动程序一起使用,并使用显式用户名和密码进行连接 在运行时,当我尝试连接到数据库时,其中一个应用程序引发异常: 3706:找不到提供程序。它可能没有正确安装 我不明白为什么这一个应用程序在其他应用程序正常运行时出现问题。参考相同,一直到版本号。尝试在您的计算机上安装。如果您在另一个系统上使用该程序并使用Access,则需要下载并安装。如果系统上未安装Access

我有一些用VB6编写的应用程序,它们都在同一台机器上使用相同的连接字符串。他们将ODBC提供程序与SQL Server本机客户端10.0驱动程序一起使用,并使用显式用户名和密码进行连接

在运行时,当我尝试连接到数据库时,其中一个应用程序引发异常:

3706:找不到提供程序。它可能没有正确安装


我不明白为什么这一个应用程序在其他应用程序正常运行时出现问题。参考相同,一直到版本号。

尝试在您的计算机上安装。

如果您在另一个系统上使用该程序并使用Access,则需要下载并安装。如果系统上未安装Access,则必须提供更多详细信息。您是真的在使用带有ODBC驱动程序的MSDASQL提供程序(如果是,为什么?)还是实际的OLEDB提供程序SQLNCLI10.1?它们都是遗留应用程序,我在不到一个月前刚刚接管了它们,所以我还没有时间重写太多。我使用了现有的连接字符串,因为在所有其他连接字符串中,它们都工作得很好,并且在大部分Windows嵌入式环境中工作,在咨询我们的操作系统/硬件人员之前,我尝试尽可能少地进行更改。我发现删除驱动程序声明可以解决这个问题;尽管我觉得这很困惑,因为它不是在SQL原生客户端10.0中使用ODBC吗?如果没有看到连接字符串,很难说。人们做了很多事情,迫使ADO和提供者猜测您的要求。据我所知,这与不同层面的违约有关。当ADO是您选择的连接器技术时,使用ODBC强制您使用至少4层软件,使用OLEDB将此减少到3层。我假设ADO当然,您可能正在使用其他东西(DAO/RDO?)。