0

我们有一个用 C(不是 c++)编写的应用程序,它使用 sqlncli.h,特别是 ODBC 实现而不是 OLEDB。根据微软

SQL Server Native Client (SQLNCLI) 仍然被弃用,不建议将其用于新的开发工作。相反,请使用新的 Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL),它将使用最新的服务器功能进行更新。

此引用链接到MSOLEDBSQL 文章,该文章解释了如何使用 MSOLEDBSQL 构建应用程序,表明您应该:

  1. 要在现有应用程序中使用新的 Microsoft OLE DB Driver for SQL Server,您应该计划将连接字符串从 SQLOLEDB 或 SQLNCLI 转换为 MSOLEDBSQL。

  1. 使用新的标题(链接到的文章在这里

就这么简单,对吧?不是真的,因为我们尝试按照这些说明实现新的标头 (msoledbsql.h),但它似乎不支持旧数据类型,例如来自 sqlncli.h 的 DBINT。所以,我现在认为弃用公告可能与 ODBC 无关。和评论

因此,在此新版本中保持与当前使用 SNAC 11 的应用程序的向后兼容性

发现here仅与OLEDB有关

我的问题是,如果您使用的是 SQLNCLI ODBC(而不是 SQLNCLI OLEDB),那么它似乎实际上并没有被弃用。那是对的吗?例如,此处的 OLEDB存在弃用警告,但此处的 ODBC 页面不存在

在此先感谢您的帮助。

4

1 回答 1

1

如果您使用的是 SQLNCLI ODBC(而不是 SQLNCLI OLEDB),那么它似乎实际上并没有被弃用

它已被弃用,但仍支持某些版本。当 SQLNCLI 中的 SQL Server OleDB Provider 被弃用时,ODBC 驱动程序的包装发生了变化,代码移植到了SQL Server 的 ODBC 驱动程序

OleDb 提供程序后来被弃用,并产生了一个新的提供程序。但那是另一回事了。

因此,从本质上讲,使用 SNAC ODBC,您只是在使用旧版本的 ODBC 驱动程序,您应该在某个时候升级到新版本。

于 2020-08-18T22:07:17.447 回答