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

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

Добавлено: 04 май 2006, 15:24
Spa_2002
Доброго времени суток.
Имеется локальная машина 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

В чем прокол ?

Добавлено: 04 май 2006, 15:29
kdv
в диалектах.

Добавлено: 04 май 2006, 15:34
Spa_2002
У меня 3й. не будет работать ?

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

Добавлено: 04 май 2006, 15:50
Spa_2002
Спасибо , огромное!
Изменил в объявлении тип на TIMESTAMP

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

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

Добавлено: 04 май 2006, 16:52
Ivan_Pisarevsky
extract (year from some_time_stamp_field)

Добавлено: 05 май 2006, 15:04
Spa_2002
Тоже вариант...
Интересно, почему в SQLRef по IB6 нет такой команды?

Добавлено: 05 май 2006, 15:48
kdv
потому что это не релиз, а пре-релиз.
www.ibase.ru/devinfo/allversions.htm