powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при использовании функции STRLENGTH_LONG
19 сообщений из 19, страница 1 из 1
Ошибка при использовании функции STRLENGTH_LONG
    #39137966
Nickolay_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Перенес на сервер с Freebsd скрипт на php, который вместе с базой firebird 2.5.4 является порталом заявок. Базу перенес обычным копированием. Она видна.
Когда захожу на портал, то не открываются заявки, вижу ошибку:
Warning: ibase_prepare(): invalid request BLR at offset 162 function STRLENGTH_LONG is not defined module name or entrypoint could not be found Error while parsing procedure TEXTTOHTML_FULL_V2's BLR Error while parsing procedure CLAIMS_ATTRIBUTES_GET's BLR in /usr/local/www/helpdesk/include/DatabaseFunctions.php on line 84

Warning: ibase_execute() expects parameter 1 to be resource, boolean given in /usr/local/www/helpdesk/include/DatabaseFunctions.php on line 87

Warning: ibase_fetch_assoc() expects parameter 1 to be resource, boolean given in /usr/local/www/helpdesk/include/DatabaseFunctions.php on line 99

Посмотрел на старом сервере библиотеки udf, скопировал их на новый сервер(там была StrLib.dll). Ошибка не уходит
(Скрипт также висит на старом сервере FreeBSD, там все работает. Версия firebird 2.5.1)

Помогите, пожалуйста.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39137975
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Добрый день!

Посмотрел на старом сервере библиотеки udf, скопировал их на новый сервер(там была StrLib.dll). Ошибка не уходит
(Скрипт также висит на старом сервере FreeBSD, там все работает. Версия firebird 2.5.1)

Помогите, пожалуйста.

Старый сервер FreeBsd
Библиотека StrLib.dll

FreeBSD умеет юзать виндовые библиотеки?
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39137984
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111, библиотека StrLib вам нужна в виде "so", а не "dll". Пересоберите на Linux'е из исходников.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138012
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111,

а чем стандартная функция CHAR_LENGTH присутствующая в firebird 2.5.4 не угодила?
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138054
Nickolay_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а как пересобрать библиотеку?
Может есть возможность научить firebird под Freebsd читать dll?
По видимому firebird на старом сервере это делать научился.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138060
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Может есть возможность научить firebird под Freebsd читать dll?
формат dll и exe на Линуксе и Винде разный. Firebird никак сам не "читает" dll. Он вызывает функцию ОС для загрузки dll.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138072
miwaonline
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111а как пересобрать библиотеку?
Может есть возможность научить firebird под Freebsd читать dll?
По видимому firebird на старом сервере это делать научился.
Нет. Скорее всего на старом сервере что-то работает не так, как тебе кажется.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138106
Nickolay_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На старом сервере убрал из директории /usr/local/libexec/firebird/udf файл StrLib.dll. Перезапустил firebird.
В заявках перестал отображаться текст, а после выхода вообще не могу назад залогиниться, в систему заявок.
Вернул файл назад. Все работает.
Что делать?
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138125
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Все работает.
Что делать?
Отойти и ничего не трогать. Всю работу предоставить сисадмину.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138137
Nickolay_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
))))))
Вот я и предоставляю. Админ-то я. Но сначала нужно разобраться, что делать.
Работает только на старом сервере. На новом firebird не видит функции из dll.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138150
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111))))))
Вот я и предоставляю. Админ-то я. Но сначала нужно разобраться, что делать.
Работает только на старом сервере. На новом firebird не видит функции из dll.

Вот интересно, чего внутри файла StrLib.dll
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138155
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Но сначала нужно разобраться, что делать.
Читай Firebird Language Reference и прочую документацию о том что такое UDF и как они
работают. Потом - man ldd или чем там во FreeBSD можно проверить зависимости. Потом
запускаешь isql, делаешь запросы и читаешь сообщения об ошибках. Не поможет - применяешь
тяжёлую артиллерию в виде strace для слежения за целым процессом попытки загрузки библиотеки.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138156
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чё-чё... Обычный so-файл, просто с именем .dll
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138166
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Работает только на старом сервере. На новом firebird не видит функции из dll.
Не припомню, чтобы в референсе конфигурации (LINT) сборки ядра FreeBSD был параметр, указывающий на поддержку в системе образов MZ/PE, но параметр поддержки образов программ Linux там есть совершенно точно. Firebird на старом сервере случайно не под Wine'ом стартует? Кто настраивал старый сервер? Ядро на старом сервере дефолтное или пересобиралось? Если пересобиралось, то с какими конфигурационными параметрами?
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138169
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Новый сервер, видать, разрядностью не тот?
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138172
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_a, кстати да! Очень может быть, что на старом сервере стоял Firebird x86, а на новом x86_64. Естественно, что 32-битную библиотеку он не загрузит.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138179
Граур Станислав
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o_v_aЧё-чё... Обычный so-файл, просто с именем .dll

А это может быть символьная ссылка на реальный so-файл ?

P.S.
Сорри, не силен в линуксах.
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138194
Nickolay_111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
o_v_a,
Большое спасибо!
Похоже файлы и правда so с именем dll. Нашел, что на старом сервере файлы компилировались с помощью с++ компилятора gcc.
И исходники там есть с расширением .c
Всем большое спасибо за помощь!
...
Рейтинг: 0 / 0
Ошибка при использовании функции STRLENGTH_LONG
    #39138222
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nickolay_111Похоже файлы и правда so с именем dll.
вероятно, было так. некий умник в системе на винде прописал в базу udf указывая имя библиотеки вместе с расширением (чего делать не требуется, сервер сам подставляет правильное расширение под конкретной OS). Из-за чего при переносе БД на FreeBSD пришлось эту либу из so переименовать в dll.
Посмотри в rdb$functions, что там написано. Если расширение указано, то его прямо там можно отредактировать и убрать. А у либы udf тогда должно быть штатное юниксовое расширение .so.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Ошибка при использовании функции STRLENGTH_LONG
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]