【问题标题】:What's the difference between SQLNCLI and .NET Framework Data Provider for SQL ServerSQLNCLI 和用于 SQL Server 的 .NET Framework 数据提供程序有什么区别
【发布时间】:2008-10-14 13:04:09
【问题描述】:

我有一个使用 UDL 文件的应用程序,其中连接字符串指定“Provider=SQLNCLI.1”,因为未安装 sqlncli.dll,因此该文件在特定机器上不起作用。

然而,另一个 .Net 应用程序的连接字符串位于 app.config 中,并且没有明确显示提供程序确实有效。 Visual Studio 中的“更改数据源”对话框将数据提供程序显示为“.NET Framework Data Provider for SQL Server”。即使未安装 sqlncli.dll,此应用程序也可以运行。

为什么?它使用什么提供商?它会以某种方式回退到 sqloledb.dll 吗?

【问题讨论】:

    标签: .net sql-server


    【解决方案1】:

    SQL Server Native 客户端是 SQL Server 2005 中引入的独立数据访问 API。

    来自 MSDN

    它还提供了新功能 超出提供的 Windows 数据访问组件 (Windows DAC,以前的 Microsoft Data 访问组件或 MDAC)。 SQL 服务器 Native Client 可用于 创建新的应用程序或增强 现有的应用程序需要 利用引入的功能 在 SQL Server 2005 中,例如多个 活动结果集(MARS), 用户定义的数据类型 (UDT)、查询 通知、快照隔离和 XML 数据类型支持。

    阅读有关它的更多信息以及它与 ADO.Net SQL Server 提供程序 here 使用的 MDAC/WDAC 的比较。

    【讨论】:

      【解决方案2】:

      Microsoft Docs 有一篇关于此的有用文章:When to Use SQL Server Native Client

      引用:

      对于新应用程序,如果您使用 Microsoft Visual C# 或 Visual Basic 等托管编程语言,并且您需要 访问 SQL Server 中的新功能,您应该使用 .NET SQL Server 的框架数据提供程序,它是.NET Framework 的一部分

      如果您正在开发基于 COM 的应用程序并需要访问 SQL Server 中引入的新功能,您应该使用 SQL Server 本机客户端。如果您不需要访问 SQL 的新功能 服务器,您可以继续使用 Windows 数据访问组件 (WDAC)。

      对于现有的 OLE DB 和 ODBC 应用程序,主要问题是 是否需要访问 SQL Server 的新功能。如果你有 一个成熟的应用程序,不需要 SQL 的新特性 服务器,你可以继续使用WDAC。但是如果你确实需要访问 那些新特性,比如xml数据类型,你应该使用SQL 服务器本机客户端。

      因此,SQL Server 的 .NET Framework 数据提供程序 是 .NET 的一部分,完全独立于 SQL Server Native Client。将其用于新的开发。对于使用 OLE DB 或 ODBC 的旧应用程序,您只需使用 SQL Server Native Client。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-17
        • 1970-01-01
        • 2016-10-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多