Некорректная работа UDF
Добавлено: 03 апр 2007, 14:24
Доброго времени суток!
Использую IB 5.5, Delphi 7. Есть тестовая UDF следующего содержания
Проблемы заключаются в следующем:
1) При первом исполнении данного кода значения переменной и параметра выводятся правильно, а возвращаемое функцией - 30.12.1899.
2) При втором и т.д. исполнении - верным остается только значение переменной, а значения параметра и возвращаемое функцией - 30.12.1899.
Подскажите, где ошибка?
Использую IB 5.5, Delphi 7. Есть тестовая UDF следующего содержания
Код: Выделить всё
CREATE PROCEDURE TEST (
DATE_BEGIN DATE,
DATE_END DATE)
RETURNS (
D1 DATE,
D2 DATE)
AS
begin
D1 = :Date_Begin;
D2 = :Date_End;
end
===
Фрагмент текста программы:
===
date1:=Yesterday;
date2:=Tomorrow;
with IBQuery1 do
begin
ParamByName('date_begin').AsDateTime:=date1;
ParamByName('date_end').AsDateTime:=date2;
SQL.Clear;
SQL.Add('SELECT d1, d2 FROM TEST(:date_begin, :date_end)');
Open;
with Memo1.Lines do
begin
Clear;
Add('Значение переменной:');
Add('date1 = ' + DateToStr(date1));
Add('date2 = ' + DateToStr(date2));
Add('Значение параметра:');
Add('date_begin = ' + DateToStr(ParamByName('date_begin').AsDate));
Add('date_end = ' + DateToStr(ParamByName('date_end').AsDate));
Add('Значение функции:');
Add('d1 = ' + DateToStr(FieldByName('d1').AsDateTime));
Add('d2 = ' + DateToStr(FieldByName('d2').AsDateTime));
end;
end;
Проблемы заключаются в следующем:
1) При первом исполнении данного кода значения переменной и параметра выводятся правильно, а возвращаемое функцией - 30.12.1899.
2) При втором и т.д. исполнении - верным остается только значение переменной, а значения параметра и возвращаемое функцией - 30.12.1899.
Подскажите, где ошибка?