【问题标题】:DBExpress Unknown error code 65535DBExpress 未知错误代码 65535
【发布时间】:2012-03-02 19:46:31
【问题描述】:

德尔福 7.火鸟 2.1。

我正在使用 TSQLDataSet、TSQLDataSetProvider 和 TClientDataSet。这种架构已经为我工作了很长时间。

今天它开始给我这个错误:DBExpress Unknown error code 65535,不是很清楚。

我能够在 TSQLDataSet 中设置 SQL 并在字段编辑器中添加所有字段。

当我尝试在设计时添加 ClientDataSet 中的所有字段时发生错误。没有涉及我的代码。

我知道的信息太少,但实际上我什至不知道从哪里开始挖掘。

备注

  • 我最近安装了 Delphi XE2 开始迁移

【问题讨论】:

  • 从识别导致错误的代码开始。你没有提供更多的东西来帮助你。找出错误发生时正在运行的代码或 SQL,然后检查该位置以查看是否可以找出导致错误发生的原因。如果您不知道原因,请在此处编辑您的问题并提供代码以及尽可能多的其他信息,也许有人可以提供帮助。事实上,我怀疑任何人都很难提供很多帮助。
  • 你是对的。没有关于错误发生时间的信息。我现在添加了一些信息。谢谢。
  • 您能否发布有关 SQL 查询返回的字段(名称、数据类型等)的信息?看来您有一些在TSQLDataSet 中受支持的字段类型在TClientDataSet 中不受支持。如果可能,您可以编辑您的帖子以提供架构定义吗?如果没有,请尝试一次将一个字段添加到 TClientDataSet - 如果可以,导致问题的字段应该很容易识别。
  • 我认为这不是数据类型问题。我认为我的环境中的某些东西发生了变化,这导致了错误。我认为这是因为它曾经在这里为我工作,现在它正在我的整个项目中发生。
  • 是的,但@KenWhite 仍然是对的。如果安装 XE2 意味着您还安装了一个新的 firebird 驱动程序,而这恰好是 64 位驱动程序,或者它可能支持与旧驱动程序不同的东西。此外,值 65535 就位数和/或符号而言非常可疑,因为它位于精确的 2 次方边界上,并且可能是 High(SomeIntegerType) + 1 的结果,之前会溢出到 -1 但现在很高兴返回 65535。

标签: delphi delphi-7


【解决方案1】:

您可能有 Firebird / Interbase 客户端 DLL 地狱。对于 Firebird,您应该使用 fbclient.dll,对于 Interbase - gds32.dll。如果您不遵守此规则,则 DBMS API 可能会返回一个神秘的错误。而 dbExpress 驱动程序可能没有好主意,如何处理这个错误。然后它返回另一个神秘的错误 - 65535。

可能(再次,因为没有信息)您将 fbclient.dll 重命名为 gds32.dll 以使 Interbase Borland dbEpress 驱动程序满意。然后 Delphi XE2 安装了一个真正的 gds32.dll 或者它是作为 Interbase 安装的一部分安装的(你呢?)。当前真正的 Interbase gds32.dll 与您的 Firebird 服务器不兼容。

您必须使用 SysMon 或 IDE 事件日志来验证加载 dbExpress 驱动程序的 DLL。然后检查这个DLL是什么。那么您可能需要恢复您的gds32.dll

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    • 2018-08-06
    • 2011-11-12
    • 2017-02-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-19
    相关资源
    最近更新 更多