为SQL Server选择正确的ODBC驱动程序

时间:2021-02-21 15:37:47

I'm writing some documentation on how to connect Access to SQL via ODBC. I honestly always just choose "11.0" when it comes to drivers, just because. But I'm wondering what determines the driver I "should" be using?

我正在编写一些关于如何通过ODBC连接Access到SQL的文档。老实说,当涉及到司机时,我总是选择“11.0”,因为。但我想知道是什么决定了我应该使用的驱动程序?

Does the version of SQL Server determine this? And I'm assuming the "User's" computer won't have all the driver's I'm seeing here so can someone just clarify the rules to choosing the correct driver?

SQL Server的版本是否确定了这一点?我假设“用户”计算机不会拥有我在这里看到的所有驱动程序,所以有人可以澄清选择正确驱动程序的规则吗?

为SQL Server选择正确的ODBC驱动程序

1 个解决方案

#1


3  

According to a blog post located here,

根据这里的博客文章,

SQL Native Client was introduced in Microsoft SQL Server 2005 to provide new functionality above and beyond that supplied by the Microsoft Data Access Components (MDAC).

SQL Native Client是在Microsoft SQL Server 2005中引入的,用于提供Microsoft数据访问组件(MDAC)提供的新功能。

It goes on to list some of the new features:

它继续列出一些新功能:

SQL Native Client can be used to create new applications or enhance existing applications that need to take advantage of new SQL Server 2005 features such as Multiple Active Result Sets (MARS), user-defined data types (UDT), query notifications, snapshot isolation, and XML data type support.

SQL Native Client可用于创建新应用程序或增强现有应用程序,这些应用程序需要利用新的SQL Server 2005功能,例如多活动结果集(MARS),用户定义数据类型(UDT),查询通知,快照隔离,和XML数据类型支持。

I think it unlikely that a SQL Server linked table in Access would leverage any of those newer SQL Server features for two reasons:

我认为Access中的SQL Server链接表不太可能利用任何这些较新的SQL Server功能,原因有两个:

  1. ODBC links to SQL Server from Access are probably kept fairly generic to support links to older versions of SQL Server, and

    从Access到SQL Server的ODBC链接可能保持相当通用,以支持到旧版SQL Server的链接,以及

  2. As I understand it, all operations on an Access linked table are handled first by the ACE/Jet database engine, which in turn sends requests to the ODBC driver. I suspect that if a query involved any "fancy stuff" then ACE/Jet would take care of it and send relatively routine requests to the SQL Server via ODBC.

    据我了解,Access链接表上的所有操作首先由ACE / Jet数据库引擎处理,后者又将请求发送到ODBC驱动程序。我怀疑如果查询涉及任何“花哨的东西”,那么ACE / Jet会处理它并通过ODBC向SQL Server发送相对例行的请求。

Therefore, since the venerable "SQL Server" (MDAC) ODBC driver is shipped with Windows and will be available on any machine then that would be the most straightforward solution. I doubt that using one of the newer "Native Client" drivers would hurt, but I also doubt that it would help much (if at all) in this case.

因此,由于古老的“SQL Server”(MDAC)ODBC驱动程序随Windows一起提供,并且可以在任何计算机上使用,那么这将是最直接的解决方案。我怀疑使用一个较新的“Native Client”驱动程序会受到伤害,但我也怀疑在这种情况下它会有多大帮助(如果有的话)。

#1


3  

According to a blog post located here,

根据这里的博客文章,

SQL Native Client was introduced in Microsoft SQL Server 2005 to provide new functionality above and beyond that supplied by the Microsoft Data Access Components (MDAC).

SQL Native Client是在Microsoft SQL Server 2005中引入的,用于提供Microsoft数据访问组件(MDAC)提供的新功能。

It goes on to list some of the new features:

它继续列出一些新功能:

SQL Native Client can be used to create new applications or enhance existing applications that need to take advantage of new SQL Server 2005 features such as Multiple Active Result Sets (MARS), user-defined data types (UDT), query notifications, snapshot isolation, and XML data type support.

SQL Native Client可用于创建新应用程序或增强现有应用程序,这些应用程序需要利用新的SQL Server 2005功能,例如多活动结果集(MARS),用户定义数据类型(UDT),查询通知,快照隔离,和XML数据类型支持。

I think it unlikely that a SQL Server linked table in Access would leverage any of those newer SQL Server features for two reasons:

我认为Access中的SQL Server链接表不太可能利用任何这些较新的SQL Server功能,原因有两个:

  1. ODBC links to SQL Server from Access are probably kept fairly generic to support links to older versions of SQL Server, and

    从Access到SQL Server的ODBC链接可能保持相当通用,以支持到旧版SQL Server的链接,以及

  2. As I understand it, all operations on an Access linked table are handled first by the ACE/Jet database engine, which in turn sends requests to the ODBC driver. I suspect that if a query involved any "fancy stuff" then ACE/Jet would take care of it and send relatively routine requests to the SQL Server via ODBC.

    据我了解,Access链接表上的所有操作首先由ACE / Jet数据库引擎处理,后者又将请求发送到ODBC驱动程序。我怀疑如果查询涉及任何“花哨的东西”,那么ACE / Jet会处理它并通过ODBC向SQL Server发送相对例行的请求。

Therefore, since the venerable "SQL Server" (MDAC) ODBC driver is shipped with Windows and will be available on any machine then that would be the most straightforward solution. I doubt that using one of the newer "Native Client" drivers would hurt, but I also doubt that it would help much (if at all) in this case.

因此,由于古老的“SQL Server”(MDAC)ODBC驱动程序随Windows一起提供,并且可以在任何计算机上使用,那么这将是最直接的解决方案。我怀疑使用一个较新的“Native Client”驱动程序会受到伤害,但我也怀疑在这种情况下它会有多大帮助(如果有的话)。