【问题标题】:BLR error when connecting to Firebird database连接到 Firebird 数据库时出现 BLR 错误
【发布时间】:2019-04-19 09:48:54
【问题描述】:

我想通过 FlameRobin 连接本地文件夹中的 Firebird 数据库。我可以连接到除一个之外的所有数据库。我收到此数据库的此错误:

在偏移量 2801 处的无效请求 BLR 函数 GETUSERINFO 未定义 找不到模块名称或入口点。

我找不到任何资源来解决这个错误。这个错误是数据库版本不同造成的吗?

【问题讨论】:

  • "这个错误是数据库版本不同造成的吗?" 什么数据库版本不同?您是否遗漏了重要信息?

标签: firebird firebird2.5


【解决方案1】:

该错误意味着您的数据库有一个使用 UDF(用户定义函数)的 on connect trigger,并且它找不到包含该代码的库(Windows:.dll,Linux:.so) UDF。

您需要找出这个数据库需要哪个库,并将其安装在正确的位置(默认是 Firebird 安装中的 udf 目录,但可以在 firebird.conf 设置 UdfAccess 中更改) .

此错误的另一个原因是使用 Firebird 64 位,而库是 32 位(反之亦然)。您需要确保 Firebird 和库的位数相同。

或者,您可以以 SYSDBA 身份连接到数据库,传递 isc_dpb_no_db_triggers 连接属性以禁用该连接的数据库触发器。我不确定你是否可以用 FlameRobin 做到这一点。

另见Invalid token - invalid request BLR at offset 340 function F_LRTRIM is not defined

【讨论】:

    【解决方案2】:

    补充一点,虽然这可能不是发帖者遇到的问题,但我在连接到远程服务器时遇到了类似的问题。连接到远程服务器时,语法如下:

    >gsec -user SYSDBA -password masterke -database <Server>/<Port>:<FDB>
    

    我错误地将 FDB> 指定为我的数据库的名称,类似于使用 ISQL 时所做的。这会导致以下错误:

    GSEC> display
    invalid request BLR at offset 37
    table USERS is not defined
    

    不过,只要简单地指定 Security2.fdb 就没有问题了:

    >gsec -user SYSDBA -password masterke -database <Server>/<Port>:Security2.fdb
    

    请注意,在服务器本身上运行 gsec 时,只需要使用凭据 - 不需要“-database”选项。

    【讨论】:

      猜你喜欢
      • 2020-09-30
      • 2017-05-09
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 2018-02-13
      • 2016-10-26
      相关资源
      最近更新 更多