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.stg
是IBExpert
默认保存数据的数据库。您可以设置自己的 firebird 数据库。但这不是您的问题的原因。检查 firebird.conf
文件中的这一行:#UdfAccess = Restrict UDF
- 前面必须有 # simbol。
【参考方案1】:
由此产生的错误可能是由来自 IBExpert 的访问冲突造成的,但原因肯定是缺少 UDF 库,例如名为 rfunc.dll
或 freeadhocudf.dll
或其他任何名称的 .dll 文件。
要查找丢失的 .dll 的名称,请通过单击 IBExpert 数据库注册中的 UDF 文件夹来检查数据库中使用的 UDF。
【讨论】:
你能详细解释一下吗?我偶尔会遇到这个错误。昨天没找到,现在又看到这个错误了!! 你能给我一步一步的指导吗?以上是关于IBExpert 中的 Firebird 在访问某些存储过程时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章