Сервер взят отсюда:
http://prdownloads.sourceforge.net/fire ... z?download
Невозможно нормально зарегистрировать UDF в базе данных.
Информация о UDF получается искаженной.
Например, следующий скрипт:
Код: Выделить всё
CONNECT ‘base.gdb’ USER ‘sysdba’ PASSWORD ‘masterkey’;
DECLARE EXTERNAL FUNCTION bloblen
BLOB
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bloblen' MODULE_NAME 'sp_ib_udf';
DECLARE EXTERNAL FUNCTION getblobhashparam
BLOB, CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_getblobhashparam' MODULE_NAME 'sp_ib_udf';
Код: Выделить всё
DECLARE EXTERNAL FUNCTION BLOBLEN
INTEGER,
BLOB,
BLOB
RETURNS INTEGER BY VALUE
ENTRY_POINT 'IB_UDF_bloblen' MODULE_NAME 'sp_ib_udf'
DECLARE EXTERNAL FUNCTION GETBLOBHASHPARAM
CSTRING(255),
CSTRING(255),
CSTRING(255),
CSTRING(255),
BLOB,
BLOB,
BLOB,
BLOB,
BLOB,
CSTRING(255),
CSTRING(255),
CSTRING(255),
CSTRING(255),
CSTRING(255)
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'IB_UDF_getblobhashparam' MODULE_NAME 'sp_ib_udf'
Пробовал на двух разных серверах (оба под FreeBSD) – поведение одинаково.
Под Linux и Windows все нормально.
Соответственно http://prdownloads.sourceforge.net/fire ... 686.tar.gz
и http://prdownloads.sourceforge.net/fire ... _win32.zip.
Этому есть какое-то разумное объяснение?