![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
подскажите с UDF [D5, Yaffil CS]
Vlad © (2003-10-16 13:03:00)
Господа, выручайте. Первый раз столкнулся с UDF, до этого никогда не использовал, и вот уже час бьюсь над проблемой. Короче говоря поставил Yaffil Classic Server. В папке UDF лежат файлы ib_udf.dll и скрипт ib_udf.sql. В IBExpert запускаю этот скрипт, он создает мне функции, вроде нормально. Но сами функции не работают, т.е. при попытке использовать их в sql предложениях возникает ошибка: "Invalid data type, length or value. Function SubStr could not be matched". Такая же ошибка, если файл ib_util.dll убрать с диска совсем. Такое впечатление, что Yaffil не находит эту dll.
Подозреваю, что проблема пустяковая, но как ее бороть - не пойму. Подскажите, плз.
Заранее спасибо.
Val (2003-10-16 14:14:00) [21]
>Vlad © (16.10.03 14:12) [16]
мда.а перенос в системные каталоги пробовали?
Danilka (2003-10-16 14:13:00) [22]
[13] Vlad © (16.10.03 14:06)
интересно, а почему она ругается "SubStr", а не "SUBSTR", как в запросе и не "substr" как в скрипте?
может в яффи есть такая встроенная функция?
у меня, кстати, запрос прокатил без проблем.
Vlad (2003-10-16 14:12:00) [23]
>Val © (16.10.03 14:10) [15]
Это ж не COM-объект, зачем его регистрить ?
Val (2003-10-16 14:10:00) [24]
м.б. стоит зарегистрировать dll с помощью regsvr32?
mOOx_ (2003-10-16 14:07:00) [25]
Сори :). Забыл что Yaffil тоже из того же семейства :). Кстати, да. Запросик бы глянуть.
Vlad (2003-10-16 14:06:00) [26]
Val © (16.10.03 14:02) [11]
Да все что угодно, напр:
select SUBSTR("abcdefg",1,1) from RDB$Database
Johnmen © (16.10.03 14:04) [12]
Скрипт один-в-один сходится.
Johnmen (2003-10-16 14:04:00) [27]
М.б. скрипт неверен ?
Д.б. так
DECLARE EXTERNAL FUNCTION substr
CSTRING(80), SMALLINT, SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT "IB_UDF_substr" MODULE_NAME "ib_udf";
Val (2003-10-16 14:02:00) [28]
>Vlad © (16.10.03 14:00) [10]
проверил, такая ошибка возникает при неверном использовании параметров функции.
ваш запрос, пожалуйста.
Vlad (2003-10-16 14:00:00) [29]
Val © (16.10.03 13:53) [7]
думаю, что Johnmen © (16.10.03 13:44) [3]
имел ввиду, что в своем тексте sql вы должны писать их в таком же регистре, как они объявлены.
Все равно не помогает
>mOOx_ © (16.10.03 13:55) [8]
Ну так у меня таже папка, которую ты назвал, только вместо FireBird - Yaffil, что по-моему справедливо :)
Может нужны какие-то доп. настройки, напр. в переменной PATH или еще что-нибудь ?
Val (2003-10-16 13:59:00) [30]
>mOOx_ © (16.10.03 13:55) [8]
у него Yaffil
mOOx_ (2003-10-16 13:55:00) [31]
Где-то читал, что длл с УДФ должны лежать в папке
C:\Program Files\Firebird\UDF
Эту папку можно как-то переопределить, но помоему, проще все кинуть туда. Попробуй.
Val (2003-10-16 13:53:00) [32]
>Vlad © (16.10.03 13:49) [4]
Имена функций были прописаны в скрипте, к-рый прилагался к этой библиотеке (ib_util.sql), думаю, что в нужном регистре. Я просто запустил этот скрипт.
думаю, что Johnmen © (16.10.03 13:44) [3]
имел ввиду, что в своем тексте sql вы должны писать их в таком же регистре, как они объявлены.
Danilka (2003-10-16 13:52:00) [33]
[5] Val © (16.10.03 13:49)
угу, у меня тоже. :))
зачем я только раньше его перезапускал, балбес. :))
Val (2003-10-16 13:49:00) [34]
>Danilka © (16.10.03 13:08) [1]
firebird у меня без перезапуска нормально их увидел.
Vlad (2003-10-16 13:49:00) [35]
>Johnmen © (16.10.03 13:44) [3]
UDF - лежит в папке с:\Program Files\Yaffil\UDF\, т.е. там, куда его инсталлятор положил. Я собственно ничего не менял. Имена функций были прописаны в скрипте, к-рый прилагался к этой библиотеке (ib_util.sql), думаю, что в нужном регистре. Я просто запустил этот скрипт.
Но не работает :(
Johnmen (2003-10-16 13:44:00) [36]
1. UDF - в нужную папку
2. Имена ф-ий в декларации регистрозависимы.
Vlad (2003-10-16 13:25:00) [37]
>Danilka © (16.10.03 13:08) [1]
Перезапустил, не помогло :(
Danilka (2003-10-16 13:08:00) [38]
Vlad © (16.10.03 13:03)
перезапусти сервер