"Не работает" FreeUDFLib.dll

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

"Не работает" FreeUDFLib.dll

Сообщение Spa_2002 » 04 май 2006, 15:24

Доброго времени суток.
Имеется локальная машина WinXP, IB6.5, IBExpert
Задача - подключить функции работы с датами из FreeUDFLib.dll
Пробуем на примере получения года из даты

описание этой функции в прилагаемом html файле выглядит так

Function: Integer Year (ib_date: PISC_QUAD)
Return the integer year of the passed date

Помещаю dll в каталог UDF
Декларирую функцию
DECLARE EXTERNAL FUNCTION YEAR1
DATE
RETURNS INTEGER BY VALUE
ENTRY_POINT 'Year' MODULE_NAME 'FreeUDFLib.dll'

Все идет без ошибок, делаю проверки ради

select year1('01.10.2006') from rdb$database

получаю ответ -678869 вместо ожидаемого 2006

В чем прокол ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 май 2006, 15:29

в диалектах.

Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

Сообщение Spa_2002 » 04 май 2006, 15:34

У меня 3й. не будет работать ?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 04 май 2006, 15:45

ты бы посмотрел, какой тип DATE в первом диалекте, какой в третьем, и какой в конкретной функции FreeUDFLib. Там скорее всего TIMESTAMP.

Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

Сообщение Spa_2002 » 04 май 2006, 15:50

Спасибо , огромное!
Изменил в объявлении тип на TIMESTAMP

DECLARE EXTERNAL FUNCTION YEAR1
TIMESTAMP
RETURNS INTEGER BY VALUE
ENTRY_POINT 'Year' MODULE_NAME 'FreeUDFLib.dll'

и получил вожделенный 2006

Ivan_Pisarevsky
Заслуженный разработчик
Сообщения: 644
Зарегистрирован: 15 фев 2005, 11:34

Сообщение Ivan_Pisarevsky » 04 май 2006, 16:52

extract (year from some_time_stamp_field)

Spa_2002
Сообщения: 28
Зарегистрирован: 13 май 2005, 15:47

Сообщение Spa_2002 » 05 май 2006, 15:04

Тоже вариант...
Интересно, почему в SQLRef по IB6 нет такой команды?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 05 май 2006, 15:48

потому что это не релиз, а пре-релиз.
www.ibase.ru/devinfo/allversions.htm

Ответить