Конференция "Базы" » UDF (function is not defined) [Firebird]
 
  • Цукор5 (05.01.17 17:28) [0]
    Добрый день.

    Пытаюсь подключить UDF, которая цвела и пахла уже лет 10, но на другом ПК. Никак.

    Ну, думаю, дай проверю, написав простенькую библиотеку с нуля.
    Пишу:

    library Littlelib;

    uses
     SysUtils,
     Classes;

    {$R *.res}

    function MyAdd1(var Val:Integer):Integer;cdecl;export;
    begin
     Result:=Val+1;
    end;

    function MyAdd2 (Val:Integer):Integer; cdecl;export;
    begin
     Result:=Val+2;
    end;

    function MyAdd3 (var Val:Integer):PInteger; cdecl; export;
     var  ResultInteger: Integer;
    begin
     ResultInteger:=Val+3;
     Result:=@ResultInteger;
    end;

    exports
    MyAdd1, MyAdd2, MyAdd3;

    begin
     isMultiThread:=True;
    end.



    Полученную библиотеку подкинул в папку Firebird\UDF

    Регистрирую их в базе:


    DECLARE EXTERNAL FUNCTION ADD1
       INTEGER
    RETURNS INTEGER
    ENTRY_POINT 'MyAdd1' MODULE_NAME 'Littlelib';

    //ну и так далее



    Запрос:
    select add1(id) from table1



    Ошибка:
    Invalid token.
    invalid request BLR at offset 60.
    function ADD1 is not defined.
    module name or entrypoint could not be found.

    На основной библиотеке у меня точно такая же ошибка. Подозреваю, что не видит моей библиотеки (ни новой, ни старой) Firebird. Куда смотреть и что делать?

    Спасибо заранее.
  • Цукор5 (05.01.17 18:42) [1]
    Вопрос решен.

    Помогла правка файла firebird.conf и размещение всех библиотек в отдельном каталоге (C:\MyUDF).

    UdfAccess = Restrict C:\MyUDF

    Почему не хочет в папке UDF, что в корне самого Firebird? Загадка...
 
Конференция "Базы" » UDF (function is not defined) [Firebird]
Есть новые Нет новых   [118586   +38][b:0][p:0.001]