微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 Microsoft Access 查询切换到 ODBC Driver 17 for SQL Server 不返回任何记录

如何解决将 Microsoft Access 查询切换到 ODBC Driver 17 for SQL Server 不返回任何记录

我们正在更改为 ODBC 驱动程序 17 以支持 TLS 1.2,将提供程序从 sqloledb 更改为驱动程序 ODBC 17 会导致记录集为空。查询执行,正如我在 sql Profiler 中看到的那样,但没有记录返回到 Microsoft Access。这是旧的连接字符串和新的连接字符串。

Dim connectionString As String
' old - this worked connectionString = "Provider=sqloledb;Server=sql\sqlInstance;Database=databaseName;Trusted_Connection=yes;"    
connectionString = "DRIVER={ODBC Driver 17 for sql Server};Server=sql\sqlInstance;Database=databaseName;Trusted_Connection=yes;"

Dim Rs As ADODB.Recordset
Dim cmd As ADODB.Command
Set cmd = New ADODB.Command

cmd.ActiveConnection = connectionString
cmd.CommandText = "SELECT * From [dbo].[TableName]"
cmd.CommandType = adCmdText
Set Rs = cmd.Execute

是否有其他方法可以使用此方法返回记录?我已经简化了用于故障排除目的的问题,真实案例使用了参数化存储过程。

解决方法

"Provider=MSOLEDBSQL;Server=SQL\SQLInstance;Database=databaseName;
Trusted_Connection=yes;DataTypeCompatibility=80;MARS Connection=True;"

这最终是正确的连接字符串,在遵循@DavidBrowne-Microsoft 的链接之后,我需要为 SQL Server 安装 Microsoft OLE DB 驱动程序 18.5 并在它工作之前重新启动。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。