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

ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Вт 24 сен 2019 05:14
dienya
День добрый!
Нашли странное поведение объекта сессии ОДАК, при подключении к БД временная зона сесии всегда +2:00. Подключались к трем различным базам на разных серверах с корректной настройкой зоны +3:00 (все последние KB-пакеты установлены), и все равно сессия возвращает временную зону +2.
Нашли костыльное лечение в виде:

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

procedure TForm1.OraSession1AfterConnect(Sender: TObject);
begin
  TOraSession(Sender).ExecSQL('ALTER SESSION SET TIME_ZONE=''+03:00''');
end;
Поясните такое поведение сессии? считаем его некорректным.

Re: ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Вт 24 сен 2019 14:39
ViktorV
По умолчанию устанавливается TIME_ZONE клиента, а не сервера. Вы нашли корректное решения вашей задачи, так как конструкция ALTER SESSION SET TIME_ZONE служит для того, чтобы переустановить значение TIME_ZONE.

Re: ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Вт 24 сен 2019 16:21
dienya
Решение может и корректное, но на клиенте временная зона +3:00. Почему объект сессии некорректно считывает time zone на клиенте?

Re: ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Ср 25 сен 2019 12:46
ViktorV
Спасибо за информацию. Мы исследуем данное поведение ODAC и сообщим вам о результате. Пожалуйста, укажите TIME_ZONE установленную на клиенте.

Re: ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Ср 25 сен 2019 14:10
dienya
На клиенте установлена временная зона +3:00 (Europe/Moscow).

Re: ODAC 11.0.1 and TOraSession TimeZone +2:00 forced

Добавлено: Чт 26 сен 2019 12:17
ViktorV
При установки TIME_ZONE не учитывается отсутствие перехода на летнее\зимнее время в Direct режиме для данной TIME_ZONE. Мы исправили данное поведение ODAC, данное исправление войдет в следующий билд ODAC.