Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
ВнизUDF Найти похожие ветки
← →
Belkova (2003-05-21 14:38) [0]Мастера Delphi! Помогите с округлением. После каждой операции с числами требуется произвести округление, почти все операции производятся на сервере. Нужно создать UDF, что и сделала, но оказалось, что для локального сервера UDF не применяется. Как быть? Проводить округление из приложения, займет очень много времени или перейти на удаленный сервер (понимая , что это глупый вопрос, но как зарегистрировать удаленный сервер?) или можно что-то еще? Заранее благодарна.
← →
Zacho (2003-05-21 14:46) [1]
> Belkova (21.05.03 14:38)
Смотри статьи и наборы UDF на http://www.ibase.ru/develop.htm и http://www.ibase.ru/d_udf.htm
И нет никакого "локального" или "удаленного" (соответственно, и "регистрировать" сервер не нужно, что-то ты путаешь) сервера, есть просто разные способы подключения, а работоспособность UDF от этого никак не зависит.
← →
Belkova (2003-05-21 22:11) [2]Спасибо за ссылки, все посмотрела, но видимо что-то я недопонимаю. Объявляю в IB функцию след. образом,
DECLARE EXTERNAL FUNCTION ROUND_BANK
DOUBLE PRECISION
RETURNS DOUBLE PRECISION BY VALUE
ENTRY_POINT "ROUND_Bank" MODULE_NAME "SqlFloat.dll"
все проходит нормально, затем выполняю
Update Price
Set Price_R=ROUND_Bank(Price_R)
на что выдает сообщение об ошибке следующего содержания
Invalid request BLR at offset 57
function ROUND_Bank is not defined
module name or entrypoint could not be found
почему Ib не видит функцию?
← →
Zacho (2003-05-21 22:38) [3]Насколько я помню, в IB6 UDF должны находиться только в каталоге \UDF\
И расширение dll указывать не обязательно (или вообще не нужно, не помню)
Кстати, на www.ibase.ru есть разнообразные UDF для округления
← →
Belkova (2003-05-21 23:19) [4]Попробовала готовую UDF, скопировала файл библиотеки в каталог \UDF\ , функцию объявила таким образом:
DECLARE EXTERNAL FUNCTION UDF_FORMATFLOAT
DOUBLE PRECISION
RETURNS DECIMAL(15,2) BY VALUE
ENTRY_POINT "ib_TrueFormatFloat"
MODULE_NAME "FMTFLOAT";
Выполняю Update Price
Set Price_R=UDF_FORMATFLOAT(Price_R)
и снова та же ошибка
Invalid request BLR at offset 16
function UDF_FORMATFLOAT is not defined
module name or entrypoint could not be found
Statement: update price_u set price_r=udf_formatfloat(price_r)
Что не так?
← →
Виталий Панасенко (2003-05-22 08:32) [5]Может, сервер перезапустить надо ?
← →
Digitman (2003-05-22 09:43) [6]соглашения о символьной регистрочувствительности при экспорте-импорте библиотечных ф-ций соблюдены ?
← →
Johnmen (2003-05-22 09:46) [7]Где-то что-то не так... Вариантов масса...
Обычно к нормальным библиотекам UDF сторонних разработчиков прилагаются хелпы, доки и примеры в стиле "для домохозяек". :)
А вообще изначальная проблема с необходимостью округления АБСОЛЮТНО надуманна !
← →
Belkova (2003-05-22 12:18) [8]Соглашения о символьной регистрочувствительности соблюдены. Всем спасибо. Буду смотреть.
← →
Belkova (2003-05-22 13:09) [9]Еще раз всем спасибо. Все работает, требовалось перезапустить сервер.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.011 c