1

我正在将我的应用程序转换为使用 SQL Server Native Client 11.0 中的 MSOLEDBSQL

我已将连接字符串从“Driver={SQL Server Native Client 11.0}”更改为“Provider=MSOLEDBSQL”以及 UID、PWD、Server、Database 参数。

但是在使用 SQL_DRIVER_COMPLETE 时,我无法连接到数据库并收到“[Microsoft][ODBC Driver Manager] Dialog failed”错误消息。

IM008   Dialog failed   The driver attempted to display its login dialog box and failed.

WindowHandle was a null pointer, and DriverCompletion was not SQL_DRIVER_NO_PROMPT.

同样,当使用 SQL_DRIVER_NOPROMPT 时,它会抛出错误“[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified”。

IM002   Data source not found and no default driver specified   (DM) The data source name specified in the connection string (InConnectionString) was not found in the system information, and there was no default driver specification.
(DM) ODBC data source and default driver information could not be found in the system information.

上述错误是调用 SQLDriverConnect() 的结果。

我已经下载并安装了https://docs.microsoft.com/en-us/sql/connect/oledb/download-oledb-driver-for-sql-server?view=sql-server-ver15并且可以看到二进制文件system32 文件夹。

根据 MS Docs,注册表设置将作为安装的一部分完成。

All appropriate registry settings for the OLE DB Driver for SQL Server are made as part of the installation process. 
  1. 我们是否应该进行任何额外的注册表配置或其他设置才能使用 MSOLEDBSQL 驱动程序?

  2. 当我使用上面提到的 Driver 关键字时,它适用于本机客户端。但是如果我使用“Provider=SQLNCLI11”它会失败。对此有什么想法吗?

我怀疑问题与加载驱动程序有关。

如果有人可以帮助解决此问题,请不胜感激。

提前致谢。

4

0 回答 0