连接到Firebird数据库时出现BLR错误

时间:2018-11-16 08:18:57

标签: firebird firebird2.5

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

  

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

Error

我找不到此错误的任何资源。此错误是由数据库版本差异引起的吗?

2 个答案:

答案 0 :(得分:2)

该错误表示您的数据库有一个使用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

答案 1 :(得分:0)

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

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

我在其中错误地将<< em> 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'选项。