我的应用程序使用ATL OLE DB使用者模板,但是我希望将OLE DB驱动程序升级到“用于SQL Server的Microsoft OLE DB驱动程序”(版本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 ++代码中,我得到了一个映射回WSTR的数据类型130-varchar(27)而不是DB_DATETIME(数据类型135)。如果代码成功使用了“ Microsoft OLE DB Driver for SQL”的18.2或18.3版本,则不会发生这种情况。
答案 0 :(得分:0)
好的,我本人可能已经解决了,但是我尝试了很多方法来使其正常工作,所以我不确定自己做了什么。但是,我怀疑我在stdafx.h文件中将“ msoledbsql.h”的包含项移到了尽可能低的位置,以便尽可能晚地包含它,以防其中的任何其他包含文件包含任何其他旧的oledb文件
不知道这对任何人都没有帮助,但似乎对我有用。