【问题标题】:Unsupported on-disk structure for file mydatabase.fdb文件 mydatabase.fdb 的磁盘结构不受支持
【发布时间】:2013-09-23 10:41:59
【问题描述】:

我的旧 delphi 7 应用程序使用 devart Interbase 驱动程序连接 mydatabase.fdb。当我将此应用程序迁移到 delphi xe4 时,我为 delphi xe4 安装了最新版本的 devart interbase。但是在这个版本中,我收到以下错误:

Unsupported on-disk structure for file mydatabase.fdb

这个错误的原因是什么?我该如何摆脱它?

我找到了链接:http://www.firebirdfaq.org/faq80/

这里提到了导致此错误的可能原因的 2 个原因。但我认为这些不适用于我。那为什么会出现这个错误呢?

【问题讨论】:

  • 也许 Interbase 覆盖了您的 Firebird 客户端库。这就是我前段时间所经历的。是mydatabase.fdb Firebird 数据库吗?
  • @TLama - 是的,它的 mydatabase.fdb 以及您声明的含义:也许 Interbase 覆盖了您的 Firebird 客户端库
  • 我认为新安装的 Interbase 覆盖了您的 System32 文件夹中的 GDS32.DLL。在任何情况下,如果驱动程序手册没有说明其他内容,您应该通过应用程序二进制文件显式存储驱动程序。请注意,我所描述的只是我在 Firebird 之后安装旧 Borland 的 Interbase 时所经历的(而且它不应该发生在你身上,因为你使用的驱动程序应该能够连接到 IB 以及 Firebird)。但是尝试通过您的可执行文件添加驱动程序。
  • 错误信息是否告诉您它预期的 ODS 版本,以及它获得的 ODS 版本?如果是这样:请将其添加到您的问题中。

标签: delphi delphi-7 delphi-xe4


【解决方案1】:

当您尝试使用更高版本的 Firebird 打开旧数据库时,通常会发生这种情况。您更新了 Firebird 服务器了吗?如果是这样,您需要备份和恢复数据库。这将更新 ODS,使其与您当前的 Firebird 服务器版本匹配。

【讨论】:

    【解决方案2】:

    我找到了错误的解决方案。当我安装DevartInterbase 驱动程序时,默认 vendorLib 在dbxdrivers.ini 文件中设置为gds32.dll,这是一个用于interbase 数据库的dll。当我用fbclient.dll 替换gds32.dll 时,它起作用了。

    我参考了 embarcadero 的以下链接: http://docwiki.embarcadero.com/Libraries/XE4/en/Data.SqlExpr.TSQLConnection.VendorLib

    【讨论】:

      猜你喜欢
      • 2019-06-19
      • 1970-01-01
      • 2018-07-16
      • 2014-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-04
      • 2020-10-12
      相关资源
      最近更新 更多