无效的令牌-偏移量340函数F_LRTRIM上的无效请求BLR未定义

时间:2018-08-28 11:35:08

标签: firebird user-defined-functions

我正在尝试使两个Firebird数据库彼此同步。首先,我已经配置了同步将是单向的。因此,一个数据库是源数据库,另一个数据库是目标数据库。

要开始同步,请使用IBReplicator!开始同步时,出现错误:

Exception: Invalid token
invalid request BLR at offset 340
function F_LRTRIM is not defined 
module name or entrypoint could not be found

我开始寻找问题的原因。我已经检查过的内容:

  • .dll文件存在于firebird目录中
  • Firebird版本为32位
  • IBExpert在数据库的UDF部分中显示UDF。

我读到,当Firebird Server版本与.dll文件版本不匹配时,这可能是一个问题。但是我不知道如何验证版本。

我想搜索一个.conf文件来检查UDF文件(.dll)的路径,但没有找到。我只找到了firebird.conf文件,并且已经将UDFAccess设置为Full。

如果有人可以帮助我,我将不胜感激。我在这个问题上浪费了很多时间。

1 个答案:

答案 0 :(得分:1)

该错误表示执行该功能时,Firebird无法找到入口点或库。这意味着

  1. 找不到该库:它不在(库)路径上,也不在UdfAccess配置中列出的文件夹之一中
  2. 找到了该库,但是它是32位并且您正在运行64位(或者它是64位并且您正在运行32位)
  3. 已找到该库,但没有UDF的入口点。

您的问题似乎是第一个,解决方案是将UDF的位置添加到UdfAccess配置中。给定评论,您应该使用

UdfAccess = Restrict UDF

仅允许Firebird安装的UDF目录中的UDF库。如果需要,您可以列出多个用;分隔的目录。

您永远不要使用UdfAccess = Full,因为它可能会被系统(库)路径上的任何库破坏,从而危害您的系统。