使用 CoCreateInstance 创建对 SQL 服务器本机客户端 OLE DB 提供程序的访问失败,出现 80040154 错误

creating access to SQL Server Native Client OLE DB provider using CoCreateInstance fails with 80040154 error

我正在尝试使用 :

获取对 SQL 服务器本机客户端 OLE DB 提供程序的访问权限

hr = CoCreateInstance(CLSID_SQLNCLI11, NULL, CLSCTX_INPROC_SERVER, IID_IDBInitialize,

(void **) &PIDBInitialize);

这失败并出现 80040154 错误。

我正在使用 sqlserver 2012,只要我的应用程序 运行 在安装了 sql 服务器的同一台机器上,一切都运行良好,但现在应用程序是部署在不同的环境中,在该环境中,应用程序在与具有数据库和 sql 服务器的服务器不同的服务器上运行我失败并出现此错误,即使目标服务器上的 sql 服务器版本相同和我一样。

知道为什么会这样吗?

感谢您的回复。

那就是 REGDB_E_CLASSNOTREG,所以 CLSID_SQLNCLI11 不可用,请下载并安装 Native Client 的可再发行组件包(匹配您的应用程序的位数)。

Download.