В каталоге interbase udf не найден файл caseudf dll
В проекте мне нужно использовать функцию fn_daypermonth указанной библиотеки. Соответственно, регистрирую ее:
DECLARE EXTERNAL FUNCTION DAYPERMONTH
INTEGER,
INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'fn_daypermonth' MODULE_NAME 'rfunc.dll'
Но при попытке запроса
select daypermonth(:V_M,:V_Y) from rdb$database
идет ошибка
Invalid token.
invalid request BLR at offset 74.
function DAYPERMONTH is not defined.
module name or entrypoint could not be found.
Что ей может не хватать?
FB 2.0 RC4
rfunc.dll версия 2.1.3.1 RC 25.11.2003
Операционка winXP SP2.
И вообще - открой для себя FileMon. Dimitry Sibiryakov писал(а): gds32.dll, например.
И вообще - открой для себя FileMon. gds32.dll имеется
FileMon - как там можно увидеть, что именно требуется для rfunc.dll? Все ок, спасибо огроменное. FileMon рулит однозначно.
Под Linux тоже самое.
Объявленная UDF не работает, говорит что не найдена точка входа или модуль.
Свои UDF уже бросил, не работает то, что идет в комплекте ib_udf и fbudf.
Чего делать и куды бечь?
Туды же куда и под виндой. Только в твоем случае это будет strace или что-то в этом же роде. fb 2.0 rc4 выкинул бы давно. в версии может быть коряга с именами подгружаемых udf, на линуксе.Стандартные UDF пошли, когда поставил в firebird.conf опцию
UDFAccess Restrict UDF
т.е. когда фактически ограничил местоположение UDF жестко.
Зато теперь на UDF сторонних производителей другая ругань:
Access to UDF library "/usr/lib/firebird2/UDF/librfunc.so" is denied by server administrator.
Чего-то я сомневаюсь, что strace и иже с ним помогут ((
ЗЫ. И почему при декларации ф-ии из fbudf.so имя модуля понимается "как есть", а rfunc.so кушать не хочет, требует librfunc.so. Возможно, эти задачи связанные.
FB под кем запускается?
Может, ты файл доступный только руту положил в UDF.
У меня rfunc.so и всё отлично работает.
Так же советую - поставь FB2.0.1 RC1, загрузка одновременно 2-х UDF у меня сервер крючила на 2.0.
WildSery писал(а): FB под кем запускается?
Может, ты файл доступный только руту положил в UDF.
У меня rfunc.so и всё отлично работает.
Так же советую - поставь FB2.0.1 RC1, загрузка одновременно 2-х UDF у меня сервер крючила на 2.0.
FB запускается под firebird:firebird
права на файлы в папке UDF у root:root
но и на fbudf тоже такие же, как на rfunc!
Сейчас поменял права на firebird - теже яйца.
А сервер у нас 1.5.4870
А, извини, это у предыдущего автора на 2-ке RC.Точку входа как указываешь? Покажи, на всякий. А, извини, это у предыдущего автора на 2-ке RC.
Точку входа как указываешь? Покажи, на всякий.
DECLARE EXTERNAL FUNCTION EXTRACTYEAR
TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'fn_year' MODULE_NAME 'rfunc';
ldd rfunc.so дает в том числе:
<address> T fn_year
т.е. точка входа есть и совпадает с определением.
Библиотеку libib_util.so уже тоже положил в /usr/lib
Но это не дело. Мне надо и свои ф-ии компилировать.
Что-то в опциях компиляции м.б. Помогло, когда rfunc положил из дистрибутивной папки bin в UDF.
Но это не дело. Мне надо и свои ф-ии компилировать. что-что? это весь топик только потому, что ты НЕ ТУДА положил udf. Какой ещё нафиг дистрибутивной папки?
Ты ограничил Restrict UDF, а потом саму библиотеку положил в bin? Молодец. Просто нет слов.
Хорошо. Объясняю с самого начала. Я вообще человек достаточно терпеливый, тем более помощь нужна мне.
1) Есть Ubuntu 6.10 + FB 1.5.4870, установленный из репозитория.
2) FB благополучно установлен, запущен и работает. Базы создаются, таблицы создаются, данные вбиваются и выбираются. Все ОК.
3) Пробуем подключить UDF. По месту установки, а именно /usr/lib/firebird2/UDF лежат 2 предустановленных UDF: fbudf.so и ib_udf.so.
Ф-ии из них работают, если в конфигурационном файл закомментирована строка с UDFAccess.
В той же папке UDF лежит СОБРАННАЯ из исходников rfunc.so
4) Если стоит UDFAccess Full - ф-ии из стандартных UDF не работают с диагностикой "не найдена точка входа или имя модуля", аналогично не работают ф-ии из rfunc.
5) Если стоит UDFAccess Restrict UDF - т.е. ограничиваем UDF только папкой UDF от корня сервера FB, то работает только fbudf, остальные валятся с ошибкой Access to UDF library librfunc.so denied by administrator.
6) В дистрибутиве RFUNC также есть предсобранный модуль rfunc.so. Который, будучи положен в папку UDF ведет себя аналогично fbudf,
т.е. работает при UDFAccess Restrict UDF, и не работает при UDFAccess Full
Теперь вроде все ясно?
ЗЫ. А админам, и заслуженным разработчикам прошу не гневаться понапрасну, а хотя бы относиться подоброжелательней. Я понимаю, что айтишник айтишнику - волк, но все таки.
Доброе время суток форумчане,
У меня FireBird 3.0 х64 Написал простенькую dll, закинул ее в директорию c Firebird - UDF (c:\Program Files\Software developments\Firebird_3_0\UDF)
Отладил на Delphi – работает
Объявил ее в базе:
В IBExpert (пытаюсь записать в поле результат функции):
can't format message 13:896 -- message system code -4. invalid request BLR at offset 39.
function mm is not defined.
module name or entrypoint could not be found.
Уже пытался перенесли udf в другую дерикторию, в «firebird.conf»
Не помогает
Все началось из сторонней dll с такой же ошибкой
Что может быть?
Заранее спасибо за ответ
Но БД у меня стоит на х64
Как быть? Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию Я не против, а чем?
У меня только Delphi 10.2 Embarcadero, а там только "linux x64"
раздел Configuring a 64-bit Windows Application in the IDE
Да, спасибо разобрался, в окне "Platforms" просто нужно добавить новую платформу для Windows x64
А почему не сталкивались? не было необходимости или по каким-то своим домыслам делаете все под х32?
Да, Теперь нужно как-то dll помечать для разных ахитектур.
не было необходимости.
и возможности.
А то там где я занимаюсь разработкой стоит "firebird x64", а там где работает непосредственно БД - "firebird x32".
С переименовкой названия файла, нужно будет в самой БД всякий раз менять, а так нет (хотя это и не наглядно). С переименовкой названия файла, нужно будет в самой БД всякий раз менять, а так нет (хотя это и не наглядно).
что значит - "менять" ?
При переустановке БД на другой компьютер?
в установленной БД ничего менять не надо.
А так, если БД установлена 64 битная, то и DLL должна быть 64 битная.
А если устанавливаете БД 32-х битную, то нужно подкладывать 32-х битную DLL
Вас не смущает, что установщик 32-х битной версии называется "Firebird-3.0.4.33054_0_Win32.exe", а 64-х битной - "Firebird-3.0.4.33054_0_x64.exe" ?
а своим решением Вы только усложнили жизнь тому, кто будет устанавливать/сопровождать/переносить вашу систему на другой комп. имхо, разумеется.
Впрочем, это ваше дело. Хозяин - барин!
Здравствуйте, MNZ, Вы писали:
MNZ>Всё равно не получается. Та же ошибка вываливается даже на вызов функции из fbudf. ОС WinXP SP2. Как подключить UDF? Ума не приложу
1) FB на замену InterBase .
2) FB бесплатен .
3) FB где скачать
4) какие есть средства адимнитрсирования FB
устроился пару дней в контору и там стоит FB под LINUX'oм
с какой стороны не знаю подойти
хочу перенести на Windows и программы переключить на него будет ли проблемы .
Здравствуйте, Аноним, Вы писали:
А>Здравствуйте, MNZ, Вы писали:
MNZ>>Всё равно не получается. Та же ошибка вываливается даже на вызов функции из fbudf. ОС WinXP SP2. Как подключить UDF? Ума не приложу
А>1) FB на замену InterBase .
А>2) FB бесплатен .
А>3) FB где скачать
А>4) какие есть средства адимнитрсирования FB
А>устроился пару дней в контору и там стоит FB под LINUX'oм
А>с какой стороны не знаю подойти
А>хочу перенести на Windows и программы переключить на него будет ли проблемы .
Привет, MNZ!
Вы пишешь 30 ноября 2005:
M> Всё равно не получается.
M> Та же ошибка вываливается даже на вызов функции из fbudf.
M> ОС WinXP SP2. Как подключить UDF? Ума не приложу
Посмотри зависимости этой UDF.
Она может импортировать сторонние функции.
Например из ib_util.dll и gds32.dll.
В этом случае, нужно обеспечить "доступность" этих dll
--
With best regards, Alex Cherednichenko.
Здравствуйте, Alex.Che, Вы писали:
M>> Всё равно не получается.
M>> Та же ошибка вываливается даже на вызов функции из fbudf.
M>> ОС WinXP SP2. Как подключить UDF? Ума не приложу
AC>Посмотри зависимости этой UDF.
AC>Она может импортировать сторонние функции.
AC>Например из ib_util.dll и gds32.dll.
AC>В этом случае, нужно обеспечить "доступность" этих dll
UDF с одной функцией, его я написал сам. Получилось подключить таким образом: в папку с IBExpert скопировал весь пакет FB Embedded, а UDF положил в папку с IBExpert.exe. По-другому никак не подключается. Пробовал вписывать полный путь к серверу в параметр Root Directory файла firebird.conf, результат — ноль на массу. Хотелось бы конечно к настоящему серверу его подцепить, а то плодить embedded рядом с каждой программой для доступа к БД как-то некошерно. Приложение-то в конце-концов будет работать с embedded версией, но для разработки так не очень удобно.
Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, MNZ, Вы писали:
MNZ>>Всё равно не получается. Та же ошибка вываливается даже на вызов функции из fbudf. ОС WinXP SP2. Как подключить UDF? Ума не приложу
А>1) FB на замену InterBase .
У меня на замену Yaffil
А>2) FB бесплатен .
Абсолютно.
А>3) FB где скачать
Много всяких, но я использую IBExpert. Для xUSSR бесплатен.
А>устроился пару дней в контору и там стоит FB под LINUX'oм
А>с какой стороны не знаю подойти
А>хочу перенести на Windows и программы переключить на него будет ли проблемы .
Проблем быть не должно. БД переносить лучше через backup/restore.
Чего то посмотрел много всякого софта на FB наверно это из-за Delphi и бесплатности вроде MSDE проще и намного надежнее
Здравствуйте, Аноним, Вы писали:
А>Чего то посмотрел много всякого софта на FB наверно это из-за Delphi и бесплатности вроде MSDE проще и намного надежнее
Не нравится — не кушайте, что тут сказать.
Здравствуйте, Пацак, Вы писали:
П>Здравствуйте, Аноним, Вы писали:
А>>Чего то посмотрел много всякого софта на FB наверно это из-за Delphi и бесплатности вроде MSDE проще и намного надежнее
П>Не нравится — не кушайте, что тут сказать.
еще маленький вопрос
оказалось еще куча файлов db я так понимаю это paradox
а какие есть средсвта по управлению и восстановлению файлов и индексов к ParaDox'у
заранее спасибо за помощь
Привет, Аноним!
Вы пишешь 30 ноября 2005:
А> еще маленький вопрос
А> оказалось еще куча файлов db я так понимаю это paradox
А> а какие есть средсвта по управлению и восстановлению файлов и индексов к ParaDox'у
Напоминаю, тема — FB1.5.2 + UDF
--
With best regards, Alex Cherednichenko.
Извините Alex а вот еще есть такой файл gds32.dll
и смотрю много версий а где взять послюднюю причем
IBExpert не всегда выполняет все пункты меню пишет ошибки и требует еще
FireBird login а у меня нет его
Привет, Аноним!
Вы пишешь 01 декабря 2005:
А> Извините Alex а вот еще есть такой файл gds32.dll
А> и смотрю много версий а где взять послюднюю причем
А> IBExpert не всегда выполняет все пункты меню пишет ошибки и требует еще
А> FireBird login а у меня нет его
Читайте также: