通用 ODBC 连接字符串适用于 SQL Server 2005+



我在VC2008中使用CDatabase通过ODBC连接到SQL Server。

我想使用适用于 SQL Sever 2005 和所有更高版本的通用连接字符串。

我检查 https://www.connectionstrings.com/microsoft-sql-server-odbc-driver/,发现有许多不同类型的连接字符串。

我是否应该使用:

驱动程序={SQL Server};服务器=我的服务器地址;数据库=我的数据库;uid=我的用户名;

驱动程序={SQL 本机客户端};服务器=我的服务器地址;数据库=我的数据库; uid=我的用户名;Pwd=我的密码; Pwd=我的密码;

更新:

根据我的测试,使用 Driver={SQL Server}或 Driver={SQL Server Native Client 10.0} 都可以连接到 SQL Server 2008。我想前者适用于所有SQL Server版本,但后者仅适用于SQL Server 2008。请确认我的猜测。

这两个驱动程序都将连接到 Sql Server。但这两个驱动程序的用途不同。

Driver={SQL Server} :

它被称为Windows数据访问组件(WDAC(。

它不支持Sql server 2005+ like xml data type,Multiple active result sets (MARS), user-defined data types (UDT), query notifications等新功能。

它仅支持已提交读取事务隔离。

Driver={SQL Native Client}

此驱动程序适用于需要利用 Sql Server 2005+ 新功能的应用程序。

它支持已提交读取事务和快照事务隔离级别。

System.Data.SQLClient

SQLClient 针对 .NET 和数据库 Sql server 2000+ 进行了优化。 它提供了最大的性能。

因此,如果您的应用程序是新的或现有的,请使用SQL Native Client。它可以访问Sql Server 2005,2008等连接版本的所有功能。

ODBC:当应用程序连接到多个数据库或预计数据库可能会更改时,请使用 ODBC。DAL 代码的编写方式适用于任何数据库。

推荐阅读

共同联系:我认为不可能有任何共同联系。假设在我的系统中安装SQL server native client 10那么我知道我无法连接到Sql server 2016 +SQL server native client 10适用于Sql Server 2016及以下。

当然,通过编程,我们可以制作动态连接字符串,它将接受驱动程序作为参数等。

要连接到更高版本,我将hv升级我的驱动程序并对连接字符串进行微小更改。或者,如果您不想触摸代码,请使用DSN.

是的,我忘了,Driver={SQL Server Native Client}它只能连接到Sql Srver 2005.如果您尝试连接到更高版本,那么它会抛出错误。

最新更新