ATL OLE DB Consumer Templates 与 Microsoft OLE DB Driver for



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

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

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

好吧,我可能自己解决了,但我尝试了很多东西试图让它工作,所以我不完全确定我做了什么。但是,我怀疑我在 stdafx.h 文件中尽可能低地移动了"msoledbsql.h"的包含,以便尽可能晚地包含它,以防任何其他包含文件包含任何其他旧的 oledb 文件。

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

最新更新