SQL Server 2005 & 2012 与 C++ 之间的兼容性

Compatibility between SQL server 2005 & 2012 with C++

本文关键字:C++ 之间 兼容性 2012 Server 2005 SQL      更新时间:2023-10-16

我们正在从SQL 2005迁移到SQL 2012,从XP迁移到Win7。我以为我可以在Windows 7上安装/升级到SQL 2012,但这没有奏效。(我收到一条消息,指示"无法更新,因为未安装 SP4",我尝试安装 SP3 和/或 SP4 但没有任何反应,即选择@@version与 9.0.3042 没有变化。因此,我转储了SQL2005并安装了SQL2012,但现在我无法使用原始代码连接到服务器。我很确定它与这个声明有关,#import"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\Resources\1033\sqldmo.rll" rename_namespace("sqldmo")因为这是唯一(我假设)标识SQL2005 GUID(s?

那么,这个假设正确吗?有没有更好的方法来连接到与版本无关的服务器?我们的程序实际上创建了我们使用的数据库、表和存储过程。 (对数据库表的所有访问都是通过存储过程进行的。

如果这是连接的方式,那么我可以"只是"更改引用,重新编译并且一切都应该再次工作吗?

顺便说一句:我仍然在使用Visual Studio 6。我们有VS2012,但我不确定使用它进行构建是否会导致更多问题。 太多的工作永远没有足够的时间.....

感谢您的任何建议...

DMO很久以前就被标记为弃用(据我所知是2005年),取而代之的是SMO(一个.NET库)。恐怕您不能只是放入新的 DLL 并重新编译,而不是一蹴而就

这真的取决于你在做什么。我假设DMO代码用于创建数据库对象,而不是连接以运行查询。如果是这种情况,则需要替换该代码并实现运行创建数据库所需的查询的内容。

如果您实际上是通过DMO进行查询,那么您还有更多的工作要做,因为您需要通过ODBC或类似的东西进行连接,这些东西从2014年7月到>一直兼容。有很多关于如何做到这一点的例子,但这将是一个更好的选择。