|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Тьфу, сорри, уже спросили. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:07 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Гаджимурадов Рустам, его клиент сам должен сообщить ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:08 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
hvladНакуа клиенту UTC ?Предлагаешь, чтобы клиент каждый раз выполнял запрос к серверу, когда ему потребуется преобразовать отметку времени из одного часового пояса в другой или добавить-вычесть интервал? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:10 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
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 через функции ОС и так сконвертируется без всяких идентификаторов часовых поясов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:34 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Basil A. SidorovhvladНакуа клиенту UTC ?Предлагаешь, чтобы клиент каждый раз выполнял запрос к серверу, когда ему потребуется преобразовать отметку времени из одного часового пояса в другой или добавить-вычесть интервал? Зачем ему туда-сюда гонять данную метку времени ? Нужно в другой TZ - сразу спроси в другой TZ. Опять же, чтобы преобразовать время между часовыми поясами, нужно знать разницу между ними. И пофигу в каком часовом поясе время изначально: - если оно в UTC и помечено как TZ1, то чтобы получить TZ2 нужно добавить смещение TZ1 - UTC и потом добавить TZ2 - TZ1 - если оно сразу в TZ1 (и помечено как TZ1), то достаточно добавить TZ2 - TZ1 Если клиент умеет вычислять эти смещения, ему всё равно в каком виде ему дали время. Если не умеет - то ой. Зато для того, чтобы показать юзеру время в TZ1 (в котором юзер и ожидает его увидеть), то - если время в UTC, то нужно преобразовать его в TZ1 (и для этого fbclient использует ICU) - если оно сразу в TZ1, то ничего делать не надо ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:35 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Гаджимурадов РустамА откуда сервер узнает часовой пояс клиента?Вопрос с отрывом от контекста. Очень сложно понять - ты спрашиваешь или пытаешься кому-то возразить, задавая наводящие вопросы. Вообще, SET TIME ZONE <tz_identifier> ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:37 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_dev, я вообще перестал понимать твой словесный поток ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:38 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
hvladrdb_dev, я вообще перестал понимать твой словесный потокТы просто устал. Хороших выходных! :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:44 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_devhvladrdb_dev, я вообще перестал понимать твой словесный потокТы просто устал. Хороших выходных! :)Можно и так завершить :) Взаимно :) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 15:56 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
hvladЕсли клиент умеет вычислять эти смещения, ему всё равно в каком виде ему дали время. Если не умеет - то ой. Лично у меня интерес, как обычно, чисто шкурный: насколько я понимаю, плагин репликации будет получать данные в формате хранения, то бишь UTC+ID. И то, что я получил на одном конце, мне надо как-то скормить серверу на принимающем конце. Если тот принимает UTC+ID - всё хорошо, а вот если он хочет локальное время + ID - тот самый "ой" в полный рост. Поэтому я ещё раз жалобно попрошу возможность скармливать серверу с клиента UTC+ID. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2019, 18:45 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Форумяне, объясните мне, плз, результат. Сервер 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.
Получаю результат: Код: plaintext 1. 2. 3.
Т.е., CURRENT_TIMESTAMP выдаёт корректный результат, а приведение литерала 'NOW' выдаёт текущее время системы как UTC. Отсюда возникает пара вопросов: 1. Литерал 'NOW' интерпретируется именно как время клиента по UTC+Offset, где Offset определяется путём согласования времени между сервером и клиентом в подключении? 2. Корректность CURRENT_TIMESTAMP означает, что сервер в контексте SYSTEM имеет свой идентификатор часового пояса, определяемый через средства ОС? Чот не догоняю логику сервера... :( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 11:07 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_dev, у тебя в конфиге сервера часовой пояс прописан? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 12:16 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Симонов Денис, нет, используется по умолчанию. # 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 = ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 12:20 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_devОтсюда возникает пара вопросов: 1. Литерал 'NOW' интерпретируется именно как время клиента по UTC+Offset, где Offset определяется путём согласования времени между сервером и клиентом в подключении? Про 'NOW' напиши в трекер, чёт мне кажется это поведение не верное rdb_dev2. Корректность CURRENT_TIMESTAMP означает, что сервер в контексте SYSTEM имеет свой идентификатор часового пояса, определяемый через средства ОС? нет. Ещё раз прочитай описания параметра DefaultTimeZone. Да оно выставится в часовой пояс сервера, если ничего не указано, но это не часовой пояс сервера Firebird, а часовой пояс сессии по умолчанию, клиент всегда может его переключить/переопределить. Причём насколько я понял узнать об этом совершенно не возможно ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 13:09 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Симонов ДенисПро 'NOW' напиши в трекер, чёт мне кажется это поведение не верное+1 Симонов ДенисДа оно выставится в часовой пояс сервера, если ничего не указано, но это не часовой пояс сервера Firebird, а часовой пояс сессии по умолчанию, клиент всегда может его переключить/переопределить. Причём насколько я понял узнать об этом совершенно не возможноДумаю, тоже имеет смысл об этом спросить - через трекер или fb-devel ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 14:05 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Симонов Дениснет. Ещё раз прочитай описания параметра DefaultTimeZone.Почитал, проверил и в очередной раз убедился, что к часовому поясу сервера этот параметр конфигурации вообще никак не относится. Собственно, там и написано, что параметр конфигурации сервера DefaultTimeZone отвечает за выбор часового пояса по умолчанию для клиентской сессии. Иными словами, для всех подключающихся клиентов сервер будет по умолчанию задавать указанный в параметре DefaultTimeZone часовой пояс, который клиент может переопределить тем же SET TIME ZONE. Для проверки в конфигурационном файле сервера изменил DefaultTimeZone=UTC, перезапустил службу сервера, скопировал isql, fbclient.dll и icu файлы в отдельный каталог, откуда и запустил isql, выдав вышеприведённые "ыудусе" без предварительного SET TIME ZONE 'UTC'. Результат тот же и в точности с описанием параметра в конфигурационном файле: Код: plaintext 1. 2. 3. 4. 5. 6.
Потому в контекстах SYSTEM и USER_SESSION необходимо иметь разные контекстные переменные TIME_ZONE, из которых можно было бы получить часовой пояс сервера и часовой пояс клиента. Проблема только в сопоставлении часовых поясов IANA с представлением на ОС Windows. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 14:40 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
hvladСимонов ДенисПро 'NOW' напиши в трекер, чёт мне кажется это поведение не верное+1Данную проблему в трекере нужно описывать тому, кто способен её изложить на вразумительном инглише. Это не про меня... На форуме даже не всегда понимают то, что я излагаю на русском. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 14:48 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_devизменил DefaultTimeZone=UTC, перезапустил службу сервера, скопировал isql, fbclient.dll и icu файлы в отдельный каталог я надеюсь, у тебя фб 4 не зарегано в реестре через instreg? Потому что в этом случае клиент на этом же компе найдет серверный firebird.conf, и возьмет нужные параметры оттуда. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 16:26 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
kdv, не помню. Надо будет в понедельник проверить. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.06.2019, 16:33 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
kdvу тебя фб 4 не зарегано в реестре через instreg?Поиск конфига\клиента\и т.п. в реестре выпилили ещё в fb3 ... |
|||
:
Нравится:
Не нравится:
|
|||
22.06.2019, 23:03 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
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.
Далее выставил в конфиге клиента "DefaultTimeZone=Europe/Moscow", перезапустил клиент сделал запрос - результат не изменился. Затем сделал SET TIME ZONE 'Europe/Moscow', результат: Код: plaintext 1. 2. 3. 4. 5. 6. 7.
ЧЯДНТ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 09:57 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_dev, ну так ты будешь Адриано писать? Или за тебя это сделать? Правда я думаю это не в трекер пока надо, а для начала в fb-devel чтобы разъяснили, а то может сам дурак. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 10:05 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Хочу обратить внимание, что параметр конфигурации DefaultTimeZone клиента не перекрыл соответствующий параметр конфигурации сервера, что, на мой взгляд, некомильфо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 10:05 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, ну так ты будешь Адриано писать? Или за тебя это сделать? Правда я думаю это не в трекер пока надо, а для начала в fb-devel чтобы разъяснили, а то может сам дурак.Неа, не буду! Dimitr на одном из семинаров как-то говорил, что если не можете внятно на инглише изложить проблему в трекере, пишите на русском здесь - на форуме sql.ru, а мы, дескать, сами создадим тикет в трекере. :) Так что, пользуясь случаем... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 10:08 |
|
Firebird 4: Could not find acceptable ICU library
|
|||
---|---|---|---|
#18+
rdb_devХочу обратить внимание, что параметр конфигурации DefaultTimeZone клиента не перекрыл соответствующий параметр конфигурации сервера, что, на мой взгляд, некомильфо. ты опять не внимательно читал документацию. Написано же, что если в конфигурации сервера не указан DefaultTimeZone, то берётся часовой пояс сервера из ОС. Если DefaultTimeZone, не указан в конфигурации клиента, то берётся часовой пояс сессии по умолчанию, что равняется, тому что ты указал в конфиге сервера. А вот поведение Cast('Now' AS TIMESTAMP WITH TIME ZONE) мне кажется не корректным, об этом и предлагаю спросить Адриано ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2019, 10:15 |
|
|
start [/forum/topic.php?fid=40&msg=39829730&tid=1560436]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
383ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 256ms |
total: | 748ms |
0 / 0 |