Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird: UDF и TimeStamp / 4 сообщений из 4, страница 1 из 1
01.04.2004, 08:53
    #32464848
ddz
ddz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird: UDF и TimeStamp
Имею UDF следующего вида:

DECLARE EXTERNAL FUNCTION CALCOST TIMESTAMP, TIMESTAMP, INTEGER
RETURNS INTEGER BY VALUE
ENTRY_POINT 'CalCost'
MODULE_NAME 'UDFPr';

В DLL функция описана так:
function CalCost(to_date : TDate; from_date : TDate;
pay : integer) : integer; cdecl; export;

При вызове этой функции из хранимых процедур и т.п. она всегда возвращает 0.
При вызове из тестовых программ на, например, DELPHI, получаю требуемый результат.
Понимаю, что причина, возможно, кроется в несоответствии типов TIMESTAMP и TDate.
Подскажите, пожалуйста, как сделать правильно.
Спасибо, Игорь.
...
Рейтинг: 0 / 0
01.04.2004, 11:40
    #32465162
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird: UDF и TimeStamp
Читай FAQ по написанию UDF.
Особое внимание обрати на передачу входных параметров.
...
Рейтинг: 0 / 0
01.04.2004, 11:56
    #32465202
ddz
ddz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird: UDF и TimeStamp
Нужно в объявлении функции добавить var?
...
Рейтинг: 0 / 0
01.04.2004, 13:00
    #32465373
ddz
ddz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FireBird: UDF и TimeStamp
Заработало. Нужно в UDF функции для параметра даты было задавать не тип TDate, а этот
Type
TIBDate=longint; И, конечно, var
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / FireBird: UDF и TimeStamp / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]