【问题标题】:Pervasive The OLE DB provider "MSDASQL" for linked server reported an error. The provider reported an unexpected catastrophic failure.普遍 链接服务器的 OLE DB 提供程序“MSDASQL”报告错误。提供商报告了意外的灾难性故障。
【发布时间】:2018-07-31 18:13:07
【问题描述】:

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 允许在线进程和端口。 依然没有 想的人。 ??

【问题讨论】:

  • 您使用的是哪个版本的 Pervasive?您是否为 Pervasive 使用 64 位 ODBC 驱动程序? MSSQL 2016 只有 64 位。 Pervasive 有多个版本,包括一些只有 32 位的版本。
  • 我试过 64 位客户端和 32 位客户端。该链接可以看到目录、数据库和表格。所以它正在连接到服务器。问题是当您发出 SELECT 时,您会收到该错误。我尝试了 MSDASQL Provider 的各种设置。允许前导零和允许在进程被选中。
  • 所有 SELECT 语句都失败了吗?你能从 Pervasive Control Center 或其他 ODBC 工具发出 SELECT 吗?
  • 另外,当我右键单击并选择 Script table as SELECT 我得到。 “不包含可以选择的列,或者当前用户没有对该对象的权限。”
  • 是的,控制中心工作正常。刚刚将链接添加到我的本地 SQL Server 是 SQL Server 2008 R2 并且一切正常所以,......它似乎是 2016 年的问题

标签: pervasive msdasql


【解决方案1】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    相关资源
    最近更新 更多