Sql server 将Microsoft Access查询切换到SQL Server的ODBC驱动程序17不会返回任何记录
我们正在更改为ODBC驱动程序17以支持TLS 1.2,将提供程序从sqloledb更改为驱动程序ODBC 17会导致记录集为空。查询将执行,正如我在SQL Profiler中看到的那样,但不会将任何记录返回给Microsoft Access。这是旧的连接字符串和新的连接字符串Sql server 将Microsoft Access查询切换到SQL Server的ODBC驱动程序17不会返回任何记录,sql-server,vba,ms-access,odbc,adodb,Sql Server,Vba,Ms Access,Odbc,Adodb,我们正在更改为ODBC驱动程序17以支持TLS 1.2,将提供程序从sqloledb更改为驱动程序ODBC 17会导致记录集为空。查询将执行,正如我在SQL Profiler中看到的那样,但不会将任何记录返回给Microsoft Access。这是旧的连接字符串和新的连接字符串 Dim connectionString As String ' old - this worked connectionString = "Provider=sqloledb;Server=SQL\SQLIn
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的链接之后,我需要安装Microsoft OLE DB Driver 18.5 for SQL Server,并在其工作之前重新启动。两个连接字符串中的
服务器
不同。而SQLOLEDB
的推荐替代品是MSOLEDBSQL
链接表是否与17驱动程序一起工作?尝试链接表-查看该连接字符串。另外,我相信有两位17岁的本地司机。一组驱动程序不支持oleDB,因此您必须安装正确的驱动程序。链接表使用ODBC,因此建议使用DAO代替ADO。但是,如果您要使用oleDB(ADO),则需要安装对它的支持-@DavidBrowne Microsoft这如何更改上述代码,我已安装了18.5 MSOLEDBSQL提供程序,我是否只需将连接字符串放回原始字符串?仅更改连接字符串似乎无法解决问题,connectionString=“Provider=MSOLEDBSQL;Server=SQL\SQLInstance;数据库=数据库名称;可信连接=是;DataTypeCompatibility=80;火星连接=真;"