Subject | invalid request BLR at offset 63 - functions (LTRIM,RTRIM,LRTRIM) not defined - module name/entrypoint not found |
---|---|
Author | s hj |
Post date | 2015-10-13T06:50Z |
Hello Team,
A few days back, I posted a message regarding 'Firebird BLR 623 invalid request - LRTRIM is not defined -
module name or entrypoint could not be found' when I ran some stored procedures that used either LTRIM
or LRTRIM functions (occasionally,though not always).
Getting to the bottom of this problem, I found this:
In my Firebird database, these are the UDF definitions:
--------------
DECLARE EXTERNAL FUNCTION LTRIM
CSTRING(1000)
RETURNS CSTRING(1000)
ENTRY_POINT 'lTrim' MODULE_NAME 'UDF';
----------------
DECLARE EXTERNAL FUNCTION LRTRIM
CSTRING(1000)
RETURNS CSTRING(1000)
ENTRY_POINT 'lrTrim' MODULE_NAME 'UDF';
----------------
DECLARE EXTERNAL FUNCTION RTRIM
CSTRING(10000)
RETURNS CSTRING(10000)
ENTRY_POINT 'rTrim' MODULE_NAME 'UDF';
----------------
I have a 64-bit cum 32-bit Firebird, both needed to work in different segments of Microsoft SSRS.
When I run these statements in IB Expert:
select ltrim (' Waste no space ')
from rdb$database
select rtrim (' Waste no space ')
from rdb$database
select lrtrim (' Waste no space ')
from rdb$database
Ocassionally (not always) I get the following error:
Invalid token.
invalid request BLR at offset 63.
function LRTRIM is not defined.
module name or entrypoint could not be found.
--------------------------
After some researching, I found this:
In the 32-bit folder: C:\Program Files (x86)\Firebird\Firebird_2_5\udf , I find these 8 files:
fbudf.dll,fbudf.sql,fbudf.txt,ib_udf.dll,ib_udf.sql,ib_udf2.sql,udf.dll,UDFPricing.dll ;
But in the 64-bit folder: C:\Program Files\Firebird\Firebird_2_5\UDF , I find these 6 files:
fbudf.dll,fbudf.sql,fbudf.txt,ib_udf.dll,ib_udf.sql,ib_udf2.sql
(I do NOT find the last 2 .dll files - udf.dll and UDFPricing.dll - that are present in
the 32-bit folder)
Will it be okay if I copy the udf.dll from the 32-bit folder and drop it in the 64-bit folder ?
Will this be a solution? Or can I change the definition of the UDF itself - such as changing the
module name to something instead of 'UDF'.
Thanks.
Sen.