从 MS Access 到 MS SQL Server 侦听器的无 DSN 连接

DSN-Less Connection from MS Access to MS SQL Server Listener

提问人:Todd 提问时间:6/27/2023 最后编辑:Todd 更新时间:6/28/2023 访问量:126

问:

我正在使用 MS Access O365,并且一直在使用 DSN-Less 连接来链接 MS SQL Server 2019 中的表。现在,我们已开始使用可用性组侦听器进行连接,而不是直接连接到单个服务器,为此,我们已将属性“MultiSubnetFailover=Yes”添加到连接字符串中。遗憾的是,引用的代码在大约一半的时间内无法连接到侦听器,并出现超时错误,但在 100% 的时间内正确连接到各个服务器。

我们在使用 Excel 和基于 Microsoft OLE DB 访问接口的连接字符串连接到同一侦听器时遇到了类似的问题,直到我们向其添加了“连接超时=60;”。不过,由于添加了它,因此它每次都可以工作。不幸的是,我认为没有办法增加基于 ODBC 的连接的超时,所以我正在寻找任何其他可能有效的选项。

根据我通过以下评论学到的知识编辑我的问题:

我有一个连接字符串,我在 Excel 中用于连接到 SQL Server 2019 侦听器,它运行良好:

"Provider=MSOLEDBSQL;Data Source=MyServerListenerName,1234;Initial Catalog=MyDatabase;Integrated Security=SSPI;MultiSubnetFailover=Yes;Connect Timeout=60;"

我可以按原样使用它,也可以对 Access 中附加的 sql 表进行一些修改吗?如果是这样,如何?

SQL 服务器 VBA MS-Access

评论

1赞 Dan Guzman 6/27/2023
Windows 附带的 Microsoft OLE DB Provider for SQL Server (SQLOLEDB) 是旧驱动程序,自 SQL Server 2000 以来不知道新功能。它不支持 MultiSubnetFailover。安装并使用较新的 Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL)。
0赞 Gustav 6/27/2023
您可能需要当前的 ODBC 驱动程序 18
0赞 Dan Guzman 6/27/2023
如果必须使用不支持 MultiSubnetFailover 的旧驱动程序,请将数据库服务器上的 RegisterAllIrovidersIP 设置更改为 0 以支持下层客户端。
0赞 Todd 6/27/2023
谢谢 Dan,但我遇到的问题是附加 sql server 表以使用无 DSN ODBC 连接进行访问。
0赞 Todd 6/27/2023
感谢 Gustav,但是由于驱动程序的 v18 几周前刚刚发布,这对我来说真的不是一个选择,因为我在一个大型(缓慢)的组织中。另外,我在 v18 发行说明中没有看到任何关于这个问题的内容。不过,我会牢记这一点,一旦它可供我使用,我就会试一试。

答: 暂无答案