【问题标题】:ATL OLE DB Consumer Templates incompatible with Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)?ATL OLE DB 使用者模板与 Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) 不兼容?
【发布时间】:2020-02-15 12:14:13
【问题描述】:

我的应用程序使用 ATL OLE DB 消费者模板,但我希望将 OLE DB 驱动程序升级到“Microsoft OLE DB Driver for SQL Server”(版本 18.2 或 18.3),并且我已经下载了驱动程序,安装了它,更改了提供程序我在应用程序中到“Provider=MSOLEDBSQL”的连接字符串,运行应用程序只是为了在 atldbsch.h 文件的调试器中看到,因为代码在逐行执行时到达那里,它链接到 oledb32.dll 和 sqloledb .dll 而不是安装在 System32 目录中的新 msoledbsql.dll。

我无法让它使用新的 OLE DB 驱动程序;我需要做什么才能使其链接到新的 DLL?是应用程序使用 ATL OLE DB 消费者模板这一事实决定了这一点吗?

我正在尝试连接到我想使用 DATETIME2 数据类型的 SQL Server 2012 数据库,但在我的 C++ 代码中,我得到了一个数据类型 130,它映射到 WSTR - varchar(27) 而不是 DB_DATETIME (数据类型 135)。如果代码成功使用 18.2 或 18.3 版本的“Microsoft OLE DB Driver for SQL”,则不会发生这种情况。

【问题讨论】:

    标签: c++ sql-server mfc oledb atl


    【解决方案1】:

    好吧,我可能自己解决了这个问题,但我尝试了很多东西试图让它工作,所以我不完全确定我做了什么。但是,我怀疑我将“msoledbsql.h”的包含尽可能移到 stdafx.h 文件中,以便在任何其他包含文件包含任何其他旧 oledb 文件的情况下尽可能晚地包含它.

    不知道这是否对任何人有帮助,但它似乎对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2016-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-30
      相关资源
      最近更新 更多