我有一个应用程序,它使用一个UDL文件,其中连接字符串指定"Provider=SQLNCLI.1“,因为没有安装sqlncli.dll,它在特定的机器上不能工作。
然而,另一个.Net应用程序,连接字符串在app.config中,并且没有具体显示提供程序执行worrk。Visual中的“”对话框将数据提供程序显示为“Server的.NET框架数据提供程序”。这个应用程序可以工作,即使没有安装sqlncli.dll。
为什么?它使用的是什么提供者?它是否回到了sqloledb.dll呢?
发布于 2008-10-14 13:26:42
Server本机客户端是Server 2005中引入的独立的数据访问API。
来自MSDN
除了Windows数据访问组件(Windows DAC,以前的Microsoft数据访问组件或MDAC)提供的功能之外,它还提供了新的功能。Server本机客户端可用于创建新应用程序或增强现有应用程序,这些应用程序需要利用Server 2005中引入的功能,如多个活动结果集(MARS)、用户定义的数据类型(UDT)、查询通知、快照隔离和XML数据类型支持。
了解更多有关它的信息,以及如何与ADO.Net Server提供程序这里使用的MDAC/WDAC进行比较。
发布于 2019-04-16 00:54:56
Microsoft有一篇关于这方面的有用文章:何时使用Server本机客户端。
引用如下:
对于新应用程序(),如果您使用的是托管编程语言(如Microsoft Visual C#或Visual ),并且需要访问Server中的新功能,则应为Server使用.NET Framework数据提供程序,这是.NET Framework的部分。 如果您正在开发基于COM的应用程序,并且需要访问Server中引入的新功能,则应使用Server本机客户端。如果不需要访问Server的新功能,则可以继续使用Windows数据访问组件(WDAC)。 对于现有的OLE DB和ODBC应用程序,主要问题是是否需要访问Server的新功能。如果您有一个不需要SQL Server新功能的成熟应用程序,则可以继续使用WDAC。但是,如果确实需要访问这些新特性,如xml数据类型,则应使用Server本机客户端。
因此,用于Server 的.NET框架数据提供程序是.NET的一部分,完全独立于Server本机客户端。把它用于新的开发。对于使用OLE DB或ODBC的旧应用程序,只需使用Server本机客户端即可。
https://stackoverflow.com/questions/201068
复制相似问题