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

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

Работа с UDF [D6, IB6.x]


dash78 ©   (2003-05-06 15:15:00) 

Уважаемые, подскажите почему не работает UDF
Функция в DLL
function GetYear(date1, date2:TDateTime):Integer;export;stdcall;
var
d,m,y:Word;
begin
DateDiff(date1, date2,d,m,y);
Result:=y;
end;

Вызов из базы
DECLARE EXTERNAL FUNCTION DAYS
DATE, DATE
RETURNS INTEGER BY VALUE
ENTRY_POINT "GETYEAR" MODULE_NAME "MYDLL"

При вызове функции в составе запроса
SELECT name, fam, days(date_rogd, date_nach_rab) from t1
в третьем столбце выдает 0, хотя функция (из DLL) корректно работает при вызове другими программами


Desdechado   (2003-05-06 15:58:00) [1]

1. поищи на ibase.ru FreeUDFLib, там есть хороший пример по работе с датами в UDF
2. надо исп-ть cdecl, а не stdcall
3. другие программы используют совместимые с твоим тип данных, а IB - свой для дат и времени


Наверх

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