Страница 1 из 1

Проблема с FreeUDFlib

Добавлено: 27 дек 2006, 16:17
Quasar
Здравствуйте.

Использую FreeUDFlib. Задекларировал функции из него, но использовать не получилось, пишет:
Invalid token
invalid request to BLR at offset 63.
function F_FIXEDPOINT is not defined
module name or entrypoint could not be found
Доступ к библиотеке есть, остальные функции этой УДФ работают. Сама эта функция на тестовой системе (WinXP) работает, на рабочем сервере стоит Win2003. Пытался отследить ошибку с помощью ProcMon, ничего не нашел (искал по fbserver). В чем может быть проблема?

Не по теме. Пользуя ProcMon, обнаружил интересную вещь: при обращении к БД процесса fbserver периодически вылазит FAST IO DISALLOWED. Что это может означать?

Спасибо.

Добавлено: 27 дек 2006, 16:44
kdv
Пытался отследить ошибку с помощью ProcMon
при чем тут procmon...

скорее всего udf не грузится. запусти FB, подсоединись к базе. потом перед тем как "дернуть UDF из SQL" запусти filemon, укажи fbserver.exe. Обратись к udf, смотри в лог filemon.

Добавлено: 27 дек 2006, 17:41
Quasar
kdv писал(а):
Пытался отследить ошибку с помощью ProcMon
при чем тут procmon...

скорее всего udf не грузится. запусти FB, подсоединись к базе. потом перед тем как "дернуть UDF из SQL" запусти filemon, укажи fbserver.exe. Обратись к udf, смотри в лог filemon.
Именно так я и делал, но ProcMon ничего не показывал. FileMon тоже пробовал с аналогичным результатом. Но udf все же грузится, т.к. остальные функции работают (проверял не все функции).

ProcMon (Process Monitor) - следующая версия filemon, имеющая все его возможности. http://www.microsoft.com/technet/sysint ... nitor.mspx

Добавлено: 27 дек 2006, 17:46
kdv
что значит "ничего не показывал"? ты сказки не рассказывай.
dll udf грузится только при первом к ней обращении, а не при старте сервера или коннекте к БД. Соответственно, в логе filemon/procmon 100% должна быть запись о поиске freeudflib.dll.
может, ты ее задекларировал с путем? А на win2003 путь отличается?

Добавлено: 27 дек 2006, 18:20
Quasar
Декларировал без путей, с помощью скрипта, идущего вместе с udf. Так что это не то, к тому же, повторюсь, сама dll-ка точно грузится, так как другие функции из нее работают.

Да, действительно, я использовал ProcMon уже после того, как первый раз обращался к udf, потому и ничего не увидел. Но по-видимому проблема в другом. Такое впечатление, что глючит данная конкретная функция dll-ки и глючит только в Win2003. Найти бы способ это точно проверить.

Добавлено: 27 дек 2006, 19:01
kdv
посмотри внимательнее на лог обращений к файлам. может быть, уже FreeUDFLib чего-то не находит?

Добавлено: 27 дек 2006, 19:02
Merlin
Если она девствительно в том же файлЕ, что и работающие, то скорей всего она сама чего-то ещё внутре себя подгрузить пытается и не находит/не достукивается из-за прав. На любые ошибки с UDF птичка реагирует именно этим стереотипным сообщением, не растекаясь мыселью по древу.

Добавлено: 28 дек 2006, 15:47
Quasar
Посмотрел исходники UDF и обнаружил, что эта функция юзает только дельфовую Format, так что ничего она не грузит. Посмотрел tdump-ом, dll-ка импортирует только gds32.dll, которая в системе есть.

Вобщем ковырялся-ковырялся я с этой udf, потом надоело, загрузил Гугл, узнал, что есть в мире FreeAdhocUDF :) , поставил последнюю версию от 23.12.06, и всё замечательно заработало.