Output параметр типа Date возвращается с не корректным значением

Обсуждение возникших проблем, предложений и ошибок ODAC компонентов
Закрыто
seregaaltmer
Сообщения: 8
Зарегистрирован: Ср 05 мар 2014 13:54

Output параметр типа Date возвращается с не корректным значением

Сообщение seregaaltmer » Ср 05 мар 2014 14:17

При обработке запросов с output параметрами типов ftDate и ftDateTime, возвращаются разные значения. С ftDateTime возвращается вполне корректное значение а с ftDate - пустое, при чём если передавать параметр типа ftDate со значением '0', результат тоже вернётся корректный. Проблема проявляется на Delphi7 с версиями Odac 8.6 и 9.2.7, в версии 6.25 проблемы не было.

Тестовое приложение:

Код: Выделить всё

program ftDateTest;

{$APPTYPE CONSOLE}

uses
  SysUtils, DB, Ora, OdacVcl;

var
  oraSQL: TOraSQL;
const
  sDateTime  = 'ftDateTime';
  sDate      = 'ftDate';
  sDateWith0 = 'ftDateWith0';

begin
  oraSQL := TOraSQL.Create(nil);
  try
    oraSQL.Session := TOraSession.Create(oraSQL);
    oraSQL.Session.ConnectDialog := TConnectDialog.Create(oraSQL);
    if not oraSQL.Session.ConnectDialog.Execute then
      Exit;
    oraSQL.SQL.Text :=
      Format('begin :%s := sysdate; :%s := sysdate; :%s := sysdate; end;',
        [sDateTime, sDate, sDateWith0]);
    oraSQL.ParamByName(sDateTime).ParamType := ptInputOutput;
    oraSQL.ParamByName(sDateTime).DataType := ftDateTime;

    oraSQL.ParamByName(sDate).ParamType := ptInputOutput;
    oraSQL.ParamByName(sDate).DataType := ftDate;

    oraSQL.ParamByName(sDateWith0).ParamType := ptInputOutput;
    oraSQL.ParamByName(sDateWith0).DataType := ftDate;
    oraSQL.ParamByName(sDateWith0).Value := 0;

    oraSQL.Execute;
    Writeln(Format('%s: "%s"', [sDateTime, oraSQL.ParamByName(sDateTime).AsString]));
    Writeln(Format('%s: "%s"', [sDate, oraSQL.ParamByName(sDate).AsString]));
    Writeln(Format('%s: "%s"', [sDateWith0, oraSQL.ParamByName(sDateWith0).AsString]));
    Readln;
  finally
    oraSQL.Session.Disconnect;
    oraSQL.Free;
  end;
end.
возвращаемый результат:
ftDateTime: "05.03.2014"
ftDate: ""
ftDateWith0: "05.03.2014"

Как с этим бороться и будет ли исправление в ближайшее время?

Alexp
Devart Team
Сообщения: 349
Зарегистрирован: Пн 27 дек 2010 10:34

Re: Output параметр типа Date возвращается с не корректным значением

Сообщение Alexp » Ср 05 мар 2014 17:01

Добрый день,

Спасибо за информацию, мы воспроизвели и исправили эту проблему. Это исправление войдет в ближайший билд.

Закрыто