powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 4: Could not find acceptable ICU library
25 сообщений из 303, страница 8 из 13
Firebird 4: Could not find acceptable ICU library
    #39826635
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тьфу, сорри, уже спросили.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826637
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам,

его клиент сам должен сообщить
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826641
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladНакуа клиенту UTC ?Предлагаешь, чтобы клиент каждый раз выполнял запрос к серверу, когда ему потребуется преобразовать отметку времени из одного часового пояса в другой или добавить-вычесть интервал?
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826651
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladrdb_devЕсли бы TIMESTAMP хранился на сервере в UTCОн там хранится в UTCЯ имею в виду 64-битный штамп времени - 'TIMESTAMP WITHOUT TIME ZONE'

hvladrdb_devи также передавался до клиентской библиотекеНакуа клиенту UTC ?А почему БЫ нет, если fbclient экспортирует две функции - с UTC и локальным временем?

hvladrdb_devтак как все нормальные операционные системы имеют у себя актуальную информацию о часовых поясах (если регулярно обновляются)Вот это вот ЕСЛИ тебя губит.Лишь меня? Часто ли администраторы серверов ФБ обновляют их из снапшотов, даже при незначительных патчах? Теперь представь, что в государстве поменялся UTC DST или какой-то населённый пункт стал частью другого административно-территориального деления с другим часовым поясом, вы внесли соответствующие изменения, выкатели снапшот и что дальше? Администраторы серверов ФБ все как один ошалело ринулись обновлять свои серваки? Чот сомневаюсь я...

hvladИ не надо мне рассказывать про WinApi, я немножко его знаю.
В отличие от тебя, показывающего не те ф-ции и не понимающего что в них не так.Ну и ладно!... Добавить суффикс Ex и перед вызовом получать DYNAMIC_TIME_ZONE_INFORMATION вместо TIME_ZONE_INFORMATION.

hvladИ если потрудишься таки почитать доку, то узнаешь, что строковые идентификатры регионов в Win ни разу не соответствуют оным в ICU (IANA)Это не самая большая проблема, тем более, что в большинстве случаев это нафиг не надо, так как локальное время в fbclient через функции ОС и так сконвертируется без всяких идентификаторов часовых поясов.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826652
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovhvladНакуа клиенту UTC ?Предлагаешь, чтобы клиент каждый раз выполнял запрос к серверу, когда ему потребуется преобразовать отметку времени из одного часового пояса в другой или добавить-вычесть интервал?
Зачем ему туда-сюда гонять данную метку времени ? Нужно в другой TZ - сразу спроси в другой TZ.

Опять же, чтобы преобразовать время между часовыми поясами, нужно знать разницу между ними.
И пофигу в каком часовом поясе время изначально:
- если оно в UTC и помечено как TZ1, то чтобы получить TZ2 нужно добавить смещение TZ1 - UTC и потом добавить TZ2 - TZ1
- если оно сразу в TZ1 (и помечено как TZ1), то достаточно добавить TZ2 - TZ1

Если клиент умеет вычислять эти смещения, ему всё равно в каком виде ему дали время.
Если не умеет - то ой.

Зато для того, чтобы показать юзеру время в TZ1 (в котором юзер и ожидает его увидеть), то
- если время в UTC, то нужно преобразовать его в TZ1 (и для этого fbclient использует ICU)
- если оно сразу в TZ1, то ничего делать не надо
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826653
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов РустамА откуда сервер узнает часовой пояс клиента?Вопрос с отрывом от контекста. Очень сложно понять - ты спрашиваешь или пытаешься кому-то возразить, задавая наводящие вопросы.
Вообще, SET TIME ZONE <tz_identifier>
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826658
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

я вообще перестал понимать твой словесный поток
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826664
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladrdb_dev, я вообще перестал понимать твой словесный потокТы просто устал. Хороших выходных! :)
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826669
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devhvladrdb_dev, я вообще перестал понимать твой словесный потокТы просто устал. Хороших выходных! :)Можно и так завершить :) Взаимно :)
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39826734
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladЕсли клиент умеет вычислять эти смещения, ему всё равно в каком виде ему дали время.
Если не умеет - то ой.

Лично у меня интерес, как обычно, чисто шкурный: насколько я понимаю, плагин репликации
будет получать данные в формате хранения, то бишь UTC+ID. И то, что я получил на одном
конце, мне надо как-то скормить серверу на принимающем конце. Если тот принимает UTC+ID -
всё хорошо, а вот если он хочет локальное время + ID - тот самый "ой" в полный рост.

Поэтому я ещё раз жалобно попрошу возможность скармливать серверу с клиента UTC+ID.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829091
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форумяне, объясните мне, плз, результат. Сервер FirebirdSQL v4.0 (WI-T6.3.0.1510 Firebird 4.0 Beta 1) и isql (от него же) запущены на одном и том же компе под Win7. Время в системе московское и на момент выполнения запроса соответствует второму результату - '2019-06-21 10:44:46.8510 Europe/Moscow'. при выполнении в isql:
Код: plsql
1.
2.
3.
SET TIME ZONE 'UTC';
SELECT Cast(1 AS BIGINT) AS seq, CURRENT_TIMESTAMP FROM oneRow
UNION SELECT 2, Cast('NOW' AS TIMESTAMP WITH TIME ZONE) FROM oneRow;

Получаю результат:
Код: plaintext
1.
2.
3.
                  SEQ
===================== =========================================================
                    1 2019-06-21 07:44:46.8510 UTC
                    2 2019-06-21 10:44:46.8510 UTC

Т.е., CURRENT_TIMESTAMP выдаёт корректный результат, а приведение литерала 'NOW' выдаёт текущее время системы как UTC. Отсюда возникает пара вопросов:
1. Литерал 'NOW' интерпретируется именно как время клиента по UTC+Offset, где Offset определяется путём согласования времени между сервером и клиентом в подключении?
2. Корректность CURRENT_TIMESTAMP означает, что сервер в контексте SYSTEM имеет свой идентификатор часового пояса, определяемый через средства ОС?

Чот не догоняю логику сервера... :(
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829144
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

у тебя в конфиге сервера часовой пояс прописан?
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829146
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, нет, используется по умолчанию.

# Default session or client time zone.
#
# If empty, the default is the OS time zone.
# When set in the server, it defines the default session time zone for attachments.
# When set in the client, it defines the default time zone used with client-side API functions.
#
# Type: string
#
#DefaultTimeZone =
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829170
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devОтсюда возникает пара вопросов:
1. Литерал 'NOW' интерпретируется именно как время клиента по UTC+Offset, где Offset определяется путём согласования времени между сервером и клиентом в подключении?

Про 'NOW' напиши в трекер, чёт мне кажется это поведение не верное

rdb_dev2. Корректность CURRENT_TIMESTAMP означает, что сервер в контексте SYSTEM имеет свой идентификатор часового пояса, определяемый через средства ОС?


нет. Ещё раз прочитай описания параметра DefaultTimeZone. Да оно выставится в часовой пояс сервера, если ничего не указано, но это не часовой пояс сервера Firebird, а часовой пояс сессии по умолчанию, клиент всегда может его переключить/переопределить. Причём насколько я понял узнать об этом совершенно не возможно
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829208
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисПро 'NOW' напиши в трекер, чёт мне кажется это поведение не верное+1

Симонов ДенисДа оно выставится в часовой пояс сервера, если ничего не указано, но это не часовой пояс сервера Firebird, а часовой пояс сессии по умолчанию, клиент всегда может его переключить/переопределить. Причём насколько я понял узнать об этом совершенно не возможноДумаю, тоже имеет смысл об этом спросить - через трекер или fb-devel
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829233
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениснет. Ещё раз прочитай описания параметра DefaultTimeZone.Почитал, проверил и в очередной раз убедился, что к часовому поясу сервера этот параметр конфигурации вообще никак не относится. Собственно, там и написано, что параметр конфигурации сервера DefaultTimeZone отвечает за выбор часового пояса по умолчанию для клиентской сессии. Иными словами, для всех подключающихся клиентов сервер будет по умолчанию задавать указанный в параметре DefaultTimeZone часовой пояс, который клиент может переопределить тем же SET TIME ZONE.

Для проверки в конфигурационном файле сервера изменил DefaultTimeZone=UTC, перезапустил службу сервера, скопировал isql, fbclient.dll и icu файлы в отдельный каталог, откуда и запустил isql, выдав вышеприведённые "ыудусе" без предварительного SET TIME ZONE 'UTC'. Результат тот же и в точности с описанием параметра в конфигурационном файле:

Код: plaintext
1.
2.
3.
4.
5.
6.
SQL> SELECT Cast(1 AS BIGINT) AS seq, CURRENT_TIMESTAMP FROM oneRow
CON> UNION SELECT 2, Cast('Now' AS TIMESTAMP WITH TIME ZONE) FROM oneRow;

                  SEQ
===================== =========================================================
                    1 2019-06-21 11:26:28.0180 UTC
                    2 2019-06-21 14:26:28.0180 UTC

Потому в контекстах SYSTEM и USER_SESSION необходимо иметь разные контекстные переменные TIME_ZONE, из которых можно было бы получить часовой пояс сервера и часовой пояс клиента. Проблема только в сопоставлении часовых поясов IANA с представлением на ОС Windows.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829240
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladСимонов ДенисПро 'NOW' напиши в трекер, чёт мне кажется это поведение не верное+1Данную проблему в трекере нужно описывать тому, кто способен её изложить на вразумительном инглише. Это не про меня... На форуме даже не всегда понимают то, что я излагаю на русском. :)
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829298
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devизменил DefaultTimeZone=UTC, перезапустил службу сервера, скопировал isql, fbclient.dll и icu файлы в отдельный каталог
я надеюсь, у тебя фб 4 не зарегано в реестре через instreg? Потому что в этом случае клиент на этом же компе найдет серверный firebird.conf, и возьмет нужные параметры оттуда.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829300
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv, не помню. Надо будет в понедельник проверить.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829515
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvу тебя фб 4 не зарегано в реестре через instreg?Поиск конфига\клиента\и т.п. в реестре выпилили ещё в fb3
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829730
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladkdvу тебя фб 4 не зарегано в реестре через instreg?Поиск конфига\клиента\и т.п. в реестре выпилили ещё в fb3ФБ3 не ставил. Выпилил всю ветку реестра [HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project], в ветке [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node] такого раздела не обнаружил, в конфиге сервера выставил DefaultTimeZone=UTC, перезапустил службу сервера. Из каталога сервера скопировал в отдельный каталог файлы: fbclient.dll, firebird.conf, firebird.msg, icudt63.dll, icudt63l.dat, icuin63.dll, icuuc63.dll, isql.exe. В конфиге клиента DefaultTimeZone по умолчанию.

Снова выполняю запрос без предварительного SET TIME ZONE, результат неизменен:
Код: plaintext
1.
2.
3.
4.
5.
6.
SQL> SELECT Cast(1 AS BIGINT) AS seq, CURRENT_TIMESTAMP FROM oneRow
CON> UNION SELECT 2, Cast('Now' AS TIMESTAMP WITH TIME ZONE) FROM oneRow;

                  SEQ
===================== =========================================================
                    1 2019-06-24 06:50:52.5700 UTC
                    2 2019-06-24 09:50:52.5700 UTC

Далее выставил в конфиге клиента "DefaultTimeZone=Europe/Moscow", перезапустил клиент сделал запрос - результат не изменился. Затем сделал SET TIME ZONE 'Europe/Moscow', результат:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
SQL> SET TIME ZONE 'Europe/Moscow';
SQL> SELECT Cast(1 AS BIGINT) AS seq, CURRENT_TIMESTAMP FROM oneRow
CON> UNION SELECT 2, Cast('Now' AS TIMESTAMP WITH TIME ZONE) FROM oneRow;

                  SEQ
===================== =========================================================
                    1 2019-06-24 09:54:03.5770 Europe/Moscow
                    2 2019-06-24 09:54:03.5770 Europe/Moscow

ЧЯДНТ?
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829733
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_dev,

ну так ты будешь Адриано писать? Или за тебя это сделать?

Правда я думаю это не в трекер пока надо, а для начала в fb-devel чтобы разъяснили, а то может сам дурак.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829734
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу обратить внимание, что параметр конфигурации DefaultTimeZone клиента не перекрыл соответствующий параметр конфигурации сервера, что, на мой взгляд, некомильфо.
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829735
rdb_dev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисrdb_dev,

ну так ты будешь Адриано писать? Или за тебя это сделать?

Правда я думаю это не в трекер пока надо, а для начала в fb-devel чтобы разъяснили, а то может сам дурак.Неа, не буду!
Dimitr на одном из семинаров как-то говорил, что если не можете внятно на инглише изложить проблему в трекере, пишите на русском здесь - на форуме sql.ru, а мы, дескать, сами создадим тикет в трекере. :) Так что, пользуясь случаем...
...
Рейтинг: 0 / 0
Firebird 4: Could not find acceptable ICU library
    #39829744
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdb_devХочу обратить внимание, что параметр конфигурации DefaultTimeZone клиента не перекрыл соответствующий параметр конфигурации сервера, что, на мой взгляд, некомильфо.

ты опять не внимательно читал документацию. Написано же, что если в конфигурации сервера не указан DefaultTimeZone, то берётся часовой пояс сервера из ОС. Если DefaultTimeZone, не указан в конфигурации клиента, то берётся часовой пояс сессии по умолчанию, что равняется, тому что ты указал в конфиге сервера.

А вот поведение Cast('Now' AS TIMESTAMP WITH TIME ZONE) мне кажется не корректным, об этом и предлагаю спросить Адриано
...
Рейтинг: 0 / 0
25 сообщений из 303, страница 8 из 13
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Firebird 4: Could not find acceptable ICU library
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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