IBExpert 中的 Firebird 在访问某些存储过程时抛出错误

Posted

技术标签:

【中文标题】IBExpert 中的 Firebird 在访问某些存储过程时抛出错误【英文标题】:Firebird in IBExpert throws errors while accessing some stored procedure 【发布时间】:2015-08-24 12:10:08 【问题描述】:

我对 Firebird 完全陌生;我得到了一个 Firebird 2.5 数据库(由我们的客户提供) - XYZ.fdb

我已经在 IB Expert 中注册了这个 XYZ.fdb 数据库。

我能够成功运行一些视图和存储过程。但是对于其他一些视图或存储过程,我收到以下错误:

无法格式化消息 13:896 - 未找到消息文件 C:Windows\firebird.msg; 偏移量 623 处的无效请求 BLR;函数 LTRIM 未定义;找不到模块名称或入口点;解析过程 XXXXXXX (stored_procedure name) 时出错;

错误信息:

模块“IBExpert.exe”中地址 00DCA0E5 的访问冲突。读取地址 00000000。

上周运行良好;我曾尝试重新启动系统,并一遍又一遍地安装 Firebird 和 IB Expert;一些存储过程和视图出现上述错误,但其他视图和存储过程工作正常。

由于我上周没有遇到此问题,并且在此期间我重新安装了 Firebird 和 IB Expert 几次,我认为它有一些配置或注册问题。

您能否为我提供解决此问题的分步方法 - 以便我可以使用 IB Expert 访问 Firebird DB 中的所有数据库对象?

【问题讨论】:

ltrim 是 UDF,而不是内置函数。您需要确保 Firebird 配置可以访问并允许 UDF 库。访问冲突很可能是 IBExpert 中的错误。 验证文件ib_udf.dll位于文件夹..\Firebird\Firebird_2_5\UDF 我在 32 位客户端(在 Program Files (x86) 中)和 64 位客户端(在 Program Files 中)都有 ib_udf.dll - 在 UDF 文件夹中 当我打开 IBExpert 时,我得到这个:IBExpert 目前使用 IBExpert.stg (C:Users\....\AppData\Roaming\HK-Software\IBExpert\IBExpert.stg) 作为主要存储其数据。这种方式现在已经过时了,以后也不支持了。相反,我们强烈建议在选项|环境选项|中设置 IBExpert 用户数据库用户数据库。 IBExpert.stgIBExpert 默认保存数据的数据库。您可以设置自己的 firebird 数据库。但这不是您的问题的原因。检查 firebird.conf 文件中的这一行:#UdfAccess = Restrict UDF - 前面必须有 # simbol。 【参考方案1】:

由此产生的错误可能是由来自 IBExpert 的访问冲突造成的,但原因肯定是缺少 UDF 库,例如名为 rfunc.dllfreeadhocudf.dll 或其他任何名称的 .dll 文件。

要查找丢失的 .dll 的名称,请通过单击 IBExpert 数据库注册中的 UDF 文件夹来检查数据库中使用的 UDF。

【讨论】:

你能详细解释一下吗?我偶尔会遇到这个错误。昨天没找到,现在又看到这个错误了!! 你能给我一步一步的指导吗?

以上是关于IBExpert 中的 Firebird 在访问某些存储过程时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章

IBExpert 和 Firebird 2.5.2 中的并发事务

IB 专家访问 - IBExpert.stg 存储

如何操作firebird数据库

firebird 1.5 中的事务

谁做过sql数据库访问firebird数据库呀,怎么连接

Firebird2.5 错误:“唯一索引中的重复值”没有重复数据