MSSQL 2016链接到普及服务器。 它可以查看Pervasive数据库和表上的数据库,但是当您选择
时SELECT *
FROM
OPENQUERY(LinkedServer, 'SELECT * FROM DB.Table')
我明白了 消息7399,级别16,状态1,第1行 链接服务器“ LinkedServer”的OLE DB提供程序“ MSDASQL”报告了一个错误。提供者报告了意外的灾难性故障。 Msg 7330,第16级,州2,第1行 无法从OLE DB提供程序“ MSDASQL”获取链接服务器“ LinkedServer”的行。 我检查了MSDASQLprovider允许的进程和端口。 依然没有 乡亲们的想法。 ??
答案 0 :(得分:0)
将SQL Server从SQL2014升级到SQL2016或更高版本时出现此问题。另外,如果您将其安装在新计算机上。根本原因是用于ODBC驱动程序的Microsoft OLE DB提供程序已更改。现在,它支持更多的ISO和其他ODBC功能。对于某些ODBC连接,这是一个重大更改。
此驱动程序( MSDASQL )用于将服务器上的ODBC连接(在这种情况下)包装到普及型数据库,并使其充当链接服务器。包装程序同时允许OPEN查询功能和标准链接查询调用。
更改的问题在于,如果您使用ODBC驱动程序版本11 或更低版本进行查询活动,则新包装将发送未处理的额外数据。它无法处理其他信息,并且将在执行时返回错误。但是它将能够连接。我可以看到所有表,但无法查询它们。
普及型ODBC驱动程序的版本12 仅适用于查询,但是Open Query不适用。在打开的查询更新中,您将继续遇到“意外的灾难性故障”。
我建议您升级到版本13.3 。Actian的此版本将支持选择和更新,并将解决“打开查询”错误。我不知道您是否需要Actian的驱动程序许可支持。