Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

UDF [D6, IB6.x]


Belkova ©   (2003-05-21 14:38:00) 

Мастера Delphi! Помогите с округлением. После каждой операции с числами требуется произвести округление, почти все операции производятся на сервере. Нужно создать UDF, что и сделала, но оказалось, что для локального сервера UDF не применяется. Как быть? Проводить округление из приложения, займет очень много времени или перейти на удаленный сервер (понимая , что это глупый вопрос, но как зарегистрировать удаленный сервер?) или можно что-то еще? Заранее благодарна.


Belkova   (2003-05-22 13:09:00) [1]

Еще раз всем спасибо. Все работает, требовалось перезапустить сервер.


Belkova   (2003-05-22 12:18:00) [2]

Соглашения о символьной регистрочувствительности соблюдены. Всем спасибо. Буду смотреть.


Johnmen   (2003-05-22 09:46:00) [3]

Где-то что-то не так... Вариантов масса...
Обычно к нормальным библиотекам UDF сторонних разработчиков прилагаются хелпы, доки и примеры в стиле "для домохозяек". :)

А вообще изначальная проблема с необходимостью округления АБСОЛЮТНОнадуманна !


Digitman   (2003-05-22 09:43:00) [4]

соглашения о символьной регистрочувствительности при экспорте-импорте библиотечных ф-ций соблюдены ?


Виталий Панасенко   (2003-05-22 08:32:00) [5]

Может, сервер перезапустить надо ?


Belkova   (2003-05-21 23:19:00) [6]

Попробовала готовую 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)
Что не так?


Zacho   (2003-05-21 22:38:00) [7]

Насколько я помню, в IB6 UDF должны находиться тольков каталоге \UDF\
И расширение dll указывать не обязательно (или вообще не нужно, не помню)
Кстати, на www.ibase.ru есть разнообразные UDF для округления


Belkova   (2003-05-21 22:11:00) [8]

Спасибо за ссылки, все посмотрела, но видимо что-то я недопонимаю. Объявляю в 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 14:46:00) [9]


> Belkova (21.05.03 14:38)

Смотри статьи и наборы UDF на http://www.ibase.ru/develop.htmи http://www.ibase.ru/d_udf.htm
И нет никакого "локального" или "удаленного" (соответственно, и "регистрировать" сервер не нужно, что-то ты путаешь) сервера, есть просто разные способы подключения, а работоспособность UDF от этого никак не зависит.


Наверх

Титульная страница Поиск, карта сайта Написать письмо