powered by simpleCommunicator - 2.0.19     © 2024 Programmizd 02
Map
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка "Data" любой системной таблицы - ошибка
35 сообщений из 35, показаны все 2 страниц
Вкладка "Data" любой системной таблицы - ошибка
    #39658508
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновил только что версию IBExpert на 2018.6.7.1

Для любой системной таблицы при переходе на вкладку "Данные" выдает

Error Message:
----------------------------------------
List index out of bounds (0)

[0041D381] Classes.TStringList.GetObject (Line 3381, "Classes.pas" + 1) + $13
[0041D381] Classes.TStringList.GetObject (Line 3381, "Classes.pas" + 1) + $13
[00E029B3] TblViewF.TTableViewForm.RefreshData (Line 550, "TblViewF.pas" + 10) + $13
[00E03616] TblViewF.TTableViewForm.aRefreshExecute (Line 855, "TblViewF.pas" + 31) + $2

Вкладка, соответственно, после ничего не отображает.

С обычными таблицами работает нормально.

Firebird 3.0.2.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #39658529
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это, видимо, последствия "исправления"
http://www.sql.ru/forum/1295181/vkladka-dannye-v-tablice

Исправил. Или "исправил"...
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #39658549
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Запустил 2018.6.8.1, работает.

Спасибо!

И спасибо за отличный инструмент!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вкладка "Data" любой системной таблицы - ошибка
    #40104926
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Никогда такого не было, и вот опять!

Firebird 4.0
IBExpert 2021.10.14.1

Что характерно, сбой наблюдается на Windows 7 SP1 64 и на Windows Server 2012 R2 64.
В Windows 10 64 работает чисто.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40104995
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Что характерно, сбой наблюдается на Windows 7 SP1 64 и на Windows Server 2012 R2 64.
В Windows 10 64 работает чисто.


И ни на какие мысли это не наводит? Разные версии клиентов на твоих компах.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105167
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

Разные версии клиентов на твоих компах.

Эта гипотеза неверна. На всех компьютерах лежит

fbclient.dll 4.0.0.2496 от 31.05.2021,

и находится она в

C:\Windows\SysWOW64 ,

откуда её и грузит в себя IBExpert. Проверено электроникой.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105170
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

потому что в Win 10 есть встроенная ICU, а в Win 7 нет. Ты либо в системный каталог копируй недостающие файлы icu*.dll icu*.dat, либо не грузи клиента из системной директории, а указывай явно его расположение
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105188
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопировал все icu*.dll из инсталляционного пакета Firebire-4.0-Win32 в системную папку. Помогло, спасибо, работает.

Но, ёлки-палки, как об этом можно было догадаться самостоятельно? При обновлении версии сервера просто кидал fbclient.dll из 32-разрядного параллельного пакета в системную папку. В пакете есть утилита instclient.exe, но она делает ровно то же самое. Оказалось, этого мало, нужны еще новые icu*.dll, а то, может, и еще какие. И хоть бы кто при загрузке вякнул, мол, чего-то не хватает.

Процесс IBExpert грузил в себя, и продолжает грузить icudt30.dll и icuuc30.dll из IBExpert\IBEUDB, и продолжает грузить, но это, я понимаю, только для поддержки собственной embedded UserDB (FB 2.5). А вот ныне загруженных icudt63.dll и icuin63.dll у него не было, и ничего, молча работал. Или молча не работал, когда нужда доходила. Ну, может, так и правильно.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105211
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

работает и без ICU, ровно до тех пор пока на клиента не передаётся тип с TIME ZONE.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105219
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Я уж понял, спасибо. Я к тому, что хорошо бы, если нет ICU, сказать, что нет ICU, функциональность будет ограничена, не обессудьте. Это сказать (вернуть код ошибки), наверное, мог бы fbclient, уж коли ему этот icu нужен. А программа, использующая клиента, могла бы донести сей печальный факт до пользователя. А тот бы уже думал, что это еще за icu такая, и ведь додумал бы.

Так и занятых людей на форуме пришлось бы меньше отвлекать.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105705
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то, при отсутствии ICU, вызов IUtil::decodeTimeStampTz() не должен падать или кидать исключения.
Он должен сформировать строку из того, что есть, и указать таймзону "GMT*".
Хотелось бы подробностей.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105714
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас проверил с Win7, IBE 2021.6.8.1, FB 4.0.1.2625 и изолированным в отдельный каталог fbclient.dll.
Открыл MON$ATTACHMENTS и вижу время в GMT с таймзоной GMT*
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105933
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Ну, а на моих Win7 и Win2012 было так, как на картинке. Рад бы еще помочь, но не знаю, как. Посмотрите, не загрузил ли у вас процесс IBExpert в себя icu*.dll из какого-нибудь другого места. Может, они и в вашей системе уже есть.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105946
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня IBExpert вообще не хочет грузить клиента не из системной папки.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105947
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Клиент 32-разрядный, зуб даю.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105950
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Посмотрите, не загрузил ли у вас процесс IBExpert в себя icu*.dll
Процессом IBE загружены только icu30.

Специально перепроверил с fb 4.0.0.2496 (оригинальный релиз, не снапшот) и IBE 2021.10.20.1 - всё ок.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105952
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
У меня IBExpert вообще не хочет грузить клиента не из системной папки.
У меня нет клиента в системном каталоге.
По-умолчанию используется клиент 3.0 из каталога сборки.
В данном случае я назначаю нужного клиента в св-вах БД, а не по-умолчанию.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105954
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Ну, а на моих Win7 и Win2012 было так, как на картинке. Рад бы еще помочь, но не знаю, как.
Предлагаю убрать ICU из системного каталога, в отдельный каталог положить fbclient.dll, firebird.msg и isql.exe, и выполнить в isql
Код: sql
1.
select * from mon$attachments;
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40105962
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Сделал. isql без ICU возвращает

2021-10-21 14:52:34.9560 GMT*

а с ICU

2021-10-21 17:52:35.1280 Europe/Moscow

То есть проблема не в fbcient.dll, ладно, это радует. А в чем тогда? IBExpert без ICU продолжает себя плохо вести.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106017
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky,

возможно, IBE передаёт что-то, что не нравится клиенту.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106074
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
У меня IBExpert вообще не хочет грузить клиента не из системной папки.
...
Клиент 32-разрядный, зуб даю.


Вот это фигня какая-то. Что у тебя в свойствах базы прописано? Какой клиент?
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106176
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
Что у тебя в свойствах базы прописано? Какой клиент?


Во всех "базах", т.е. в параметрах коннектов прописана просто fbclient.dll без пути. Ну, понятно, что произошло: если fbclient.dll не нашлась в системной папке, то она и нигде не нашлась, несмотря на Environment Options/Default Client Library . Ладно, это легко обходимо, когда знаешь.

Но вот основная проблема остается открытой. В случае отсутствия библиотек ICU isql.exe выполняет select * from mon$attachements корректно, возвращая зону GMT*, а IBExpert налетает на исключение в Firebird.IUtil.decodeTimeStampTz .
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106250
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky

Во всех "базах", т.е. в параметрах коннектов прописана просто fbclient.dll без пути. Ну, понятно, что произошло: если fbclient.dll не нашлась в системной папке, то она и нигде не нашлась, несмотря на Environment Options/Default Client Library . Ладно, это легко обходимо, когда знаешь.


Брррр... Так какой клиент у тебя использует эксперт, когда налетает на обсуждаемое исключение? Где он прописан?

shalamyansky

Но вот основная проблема остается открытой. В случае отсутствия библиотек ICU isql.exe выполняет select * from mon$attachements корректно, возвращая зону GMT*, а IBExpert налетает на исключение в Firebird.IUtil.decodeTimeStampTz .


И с ICU, и без ICU эксперт дергает одну и ту же функцию в клиенте, с одним и тем же набором параметров. Эксперт вообще ничего не знает про ICU.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106718
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

Брррр... Так какой клиент у тебя использует эксперт, когда налетает на обсуждаемое исключение? Где он прописан?


Почему брр? Клиент всегда последний и соответствующий серверу, в данном случае firebird.dll 4.0.1.2631 32 (поставил отладочный снапшот). С чуть более ранним 4.0.0.2496 та же история. Неважно, где он лежит, обычно в системной папке, но пробовал в разных других местах, место ни на что не влияет. Всегда проверяю Process Explorer'ом, какой реально клиент загружен.

Кстати, был несказанно удивлен, увидев, что одновременно в процесс загружены несколько одноименных fbclient.dll. Я еще думал - как это так сделано, разные коннекты с разными клиентами?

IBExpert

Эксперт вообще ничего не знает про ICU.

Я догадываюсь. ISQL тоже ничего про неё не знает. Однако ISQL на том же компьютере и с тем же клиентом без ICU почему-то принимает зонные даты, ставя им GMT*, а IBExpert налетает на исключение. Вопрос скорее любопытства, чем практический, потому что теперь, зная про важность ICU, надо просто про нее не забывать.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106780
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky

Почему брр?


Потому что если у тебя в настройках базы прописана "просто fbclient.dll без пути", то фиг знает, откуда LoadLibrary его подтягивает.
И вот прежде чем утверждать, что эксперт и isql используют одну и ту же либу, пропиши там полный путь к ней. И в принципе всегда прописывай путь, который исключает неоднозначность.

shalamyansky

Кстати, был несказанно удивлен, увидев, что одновременно в процесс загружены несколько одноименных fbclient.dll. Я еще думал - как это так сделано, разные коннекты с разными клиентами?


Так, а вот тут поподробнее. Сколько у тебя активных коннектов в эксперте и сколько при этом "одноименных" fbclient.dll загружено?
В принципе, здесь как раз ничего странного нет: имя загруженного модуля включает полный путь к нему, а не только имя самого файла.

shalamyansky

Однако ISQL на том же компьютере и с тем же клиентом


В связи со всем вышесказанным тобой, я до сих пор не уверен, что клиент тот же. Вот за Влада я уверен, но у него и эксперт AV не вываливает.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106798
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert

Так, а вот тут поподробнее. Сколько у тебя активных коннектов в эксперте и сколько при этом "одноименных" fbclient.dll загружено?

Понимаю ваше недоверие. Сам с подозрением к пользователям, когда у меня, разработчика, все прекрасно, а у них, видите ли, не работает. Явно что-то недоговаривают.

Говорю же, поскольку тоже заинтересовался этим случаем, проверяю глазами через Process Explorer, откуда именно какая dll загружена. FB клиент обычно у меня один, последний, и лежит он в системной папке. Но тут ради эксперимента положил еще в отдельную папку и клиента от 3-ки и приконнектился через него к соответствующей базе. Вот и увидел 2 одноименные dll. Оказалось, это нормально. С GetModuleHandle() могут быть проблемы, но его ж можно и не использовать.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106799
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И кстати, после того, как ты к базе в эксперте законнектился, полный путь к загруженной клиентской dll и версия клиента отображаются в SQL-ассистенте. Не нужно никаким процесс-эксплорером никуда смотреть.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40106801
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky
Клиент всегда последний и соответствующий серверу, в данном случае firebird.dll 4.0.1.2631 32 (поставил отладочный снапшот). С чуть более ранним 4.0.0.2496 та же история

shalamyansky
FB клиент обычно у меня один, последний, и лежит он в системной папке. Но тут ради эксперимента положил еще в отдельную папку и клиента от 3-ки и приконнектился через него к соответствующей базе
Так какой клиент на самом деле и с каким выдаёт AV ?
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107093
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OC:
Windows 7 SP1 64, Windows Server 2012 R2 64

Firebird:
4.0.1.2631

Файлы:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
path\filename       version       machine      size  creation time         md5
--------------------------------------------------------------------------------------------------------
c:\fb\fbclient.dll  4.0.1.2631    I386      1628672  13.10.2021 04:39:00   0e978647d1993b8396d0e51bb643660f
c:\fb\fbclient.pdb                         16257024  13.10.2021 04:39:00   
c:\fb\firebird.msg                           162632  13.10.2021 04:50:32   
c:\fb\isql.exe      4.0.1.2631    I386       619520  13.10.2021 04:49:52   6de20ef38a1e2c7102a80b0ceb54ca28

C:\Program Files (x86)\IBExpert\
IBExpert.exe        2021.10.14.1  I386     19539456  14.10.2021 07:32:39   b97ae8ebb44d7ee22276a0ea6f84c9ec

No icu*.dll in available pathes


Опыт 1:

run c:\fb\isql.exe
connect test user ... password ...;
select first 1 * from mon$attachments;

2021-10-26 12:39:36.8170 GMT* found in result, no exception


Опыт 2:

run C:\Program Files (x86)\IBExpert\IBExpert.exe
connect to test (Client Library File = C:\fb\fbclient.dll)
Tools/SQL Editor
select first 1 * from mon$attachments

Error Message:
----------------------------------------
Access violation at address 00000000. Write of address 00000000

[00403BDF] System.@HandleAnyException + $33
[004F5CA6] Firebird.IUtil.decodeTimeStampTz (Line 566, "Firebird.pas" + 1) + $2A
[00536702] FIBQuery.TFIBXSQLVAR.GetAsDateTime (Line 935, "FIBQuery.pas" + 84) + $4D
[0052D34A] FIBDataSet.TFIBCustomDataSet.FetchCurrentRecordToBuffer (Line 2449, "FIBDataSet.pas" + 80) + $E
[005306AB] FIBDataSet.TFIBCustomDataSet.GetRecord (Line 4191, "FIBDataSet.pas" + 50) + $16
[0050E38A] Db.TDataSet.GetNextRecord (Line 9186, "DB.pas" + 9) + $13


Что еще не хватает, чтобы убедить недоверчивых?
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107094
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBExpert
полный путь к загруженной клиентской dll и версия клиента отображаются в SQL-ассистенте

Это где такой? В меню IBE не нашел.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107110
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть предположение на этот счёт.

Просто не найдя ICU нужной версии IBE хватает ту что используется в fbembed
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107132
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис

у меня есть предположение на этот счёт.
Просто не найдя ICU нужной версии IBE хватает ту что используется в fbembed

Таки да! Отлючил использование User DB, а вместе с ней и загрузку fbembed.dll, и в результате всё хорошо, прекрасная маркиза, возвращается GMT* .

Вот и разобрались.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107298
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Просто не найдя ICU нужной версии IBE хватает ту что используется в fbembed
Есс-но. Но в старой ICU 30 нет нужных ф-ций (ucal_getTZDataVersion) и новый fbclient это прекрасно понимает и обрабатывает.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107624
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shalamyansky

Это где такой? В меню IBE не нашел.


Это панелька под деревом DB Explorer.
...
Рейтинг: 0 / 0
Вкладка "Data" любой системной таблицы - ошибка
    #40107829
shalamyansky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Класс! Таки нашел в контекстном меню пункт. А то когда-то, видать, нажал крестик на этом окошке, так обыскался восстановить обратно.
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Вкладка "Data" любой системной таблицы - ошибка
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (0):
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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