是什么决定了每台客户端计算机用于SQL Server数据库的连接字符串?

时间:2015-06-18 16:34:28

标签: sql-server vba excel-vba vsto excel-addins

我们有一个SQL Server 2012数据库(在远程服务器上),我们通过Excel加载项从三台不同的客户端计算机连接。我们使用的原始连接字符串适用于两台计算机。但是,对于第三台计算机,由于某种原因,我们必须使用不同的连接字符串到同一个确切的数据库。

前两台计算机在Windows 7 Pro上运行,64位,我们使用的原始连接字符串是:

Provider=SQLNCLI11;Server={myserver};Database={mydb}; ...

第三台计算机在Windows 7企业版上运行,64位,我们必须使用的原始连接字符串是:

Provider=SQLOLEDB;DataSource={myds};InitialCatalog={mydb};  ...

为什么我必须将两个不同的连接字符串用于同一个数据库?除了数据库本身的类型,还有什么决定使用哪个连接字符串和提供程序?是否与每台 客户端 计算机上安装的驱动程序有关?如果是这样,我们如何解释?或者......是别的吗?

非常感谢任何帮助和建议!

1 个答案:

答案 0 :(得分:0)

Provider基本上告诉客户端计算机在连接​​到数据库服务器时使用哪个网络/连接库。要使用提供程序,您必须安装它。您将使用提供程序来提供性能,功能和支持。例如,SQLNCLI11附带SQL Server 2012.如果客户端计算机没有安装SQL 2012客户端库,则它们不能使用该提供程序,也不能使用它支持的客户端连接功能,例如AlwaysOn(应用程序意图只读等)

SQLOLEDB是老派的东西,我不知道现在是否默认安装它。如果您拥有该功能,则无法访问连接字符串中的上述功能或任何其他特定的SQL相关客户端连接功能(如镜像的failoverpartner参数)。