2

MSSQL 2016 链接到 Pervasive 服务器。它可以看到 Pervasive 数据库和表上的 DB,但是当您进行选择时

SELECT *
        FROM 
        OPENQUERY(LinkedServer, 'SELECT * FROM DB.Table')

我收到消息 7399,级别 16,状态 1,第 1 行链接服务器“LinkedServer”的 OLE DB 提供程序“MSDASQL”报告错误。提供商报告了意外的灾难性故障。消息 7330,级别 16,状态 2,第 1 行无法从链接服务器“LinkedServer”的 OLE DB 提供程序“MSDASQL”获取行。我检查了 MSDASQLprovider 允许在线进程和端口。仍然没有想法的人。??

4

1 回答 1

0

将 SQL Server 从 SQL2014 升级到 SQL2016 或更高版本时出现此问题。另外,如果您将其安装在新机器上。根本原因是用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序已更改。它现在支持更多 ISO 和其他 ODBC 功能。这是一些 ODBC 连接的重大更改。

此驱动程序 ( MSDASQL ) 用于在服务器上包装 ODBC 连接,在这种情况下,连接到普遍数据库,并允许它充当链接服务器。包装器允许 OPEN Query 功能以及标准的链接查询调用。

更改的问题在于,如果您使用 ODBC 驱动程序版本 11或更低版本进行查询活动,则新包装器正在发送未处理的额外数据。它无法处理附加信息,并会在执行时返回错误。但是,它将能够连接。我可以看到所有的表,但无法查询它们。

普遍的 ODBC 驱动程序版本 12仅适用于查询,但 Open Query 将不起作用。您将继续在打开查询更新时遇到“意外的灾难性故障”。

我建议您升级到 13.3 版。 Actian 的此版本将支持选择和更新,并将解决 Open Query 错误。我不知道您是否需要 Actian 的支持来获得驱动程序的许可。

于 2019-07-15T15:47:53.457 回答