powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Глюки и регрессии при работе с FB 4.0 Release
25 сообщений из 74, страница 2 из 3
Глюки и регрессии при работе с FB 4.0 Release
    #40075840
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvladпока что нет никаких точных сведений об источнике проблемы.

Источник "проблемы":
https://github.com/FirebirdSQL/firebird/commit/967fb28e5d7a60be449490c1c7b59caa9a7bcd16#diff-fd13f6dad7546b58e5bb52da7144847ab1e126779c744019a360db1516cc1fb9

Был взадпортирован в тройку, так что ожидайте наплыв недовольных в саппорте и трекере.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075841
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkorshun,

Это обход проблемы.

А сама проблема всё же в IBX, он использует неинициализированные TIBXSQLVar при работе с IMetadataBuilder.
А использует их он потому, что вызывает BuildMetadata из Bind - косвенно, вот тут:

Код: sql
1.
2.
3.
4.
5.
6.
7.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
    Count := metadata.getCount(StatusIntf);  <<<----


т.е. пытаясь инициализировать параметры он их использует.


Вот до чего доводит over-engineering ;)

PS только у меня dclibx роняет Lazarus IDE ?
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075844
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И, насколько я могу судить, действительно исправить всё можно вот так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
//    Count := metadata.getCount(StatusIntf);
    Count := aMetaData.getCount(StatusIntf);
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075845
vkorshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
vkorshun,

Это обход проблемы.

А сама проблема всё же в IBX, он использует неинициализированные TIBXSQLVar при работе с IMetadataBuilder.
А использует их он потому, что вызывает BuildMetadata из Bind - косвенно, вот тут:

т.е. пытаясь инициализировать параметры он их использует.



Ну , это временный костыль, пока автор уберет лишний вызов
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075850
vkorshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
И, насколько я могу судить, действительно исправить всё можно вот так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
//    Count := metadata.getCount(StatusIntf);
    Count := aMetaData.getCount(StatusIntf);



Спасибо. Работает.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075857
vkorshun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но есть еще TIBXOUTPUTSQLDA.Bind - там надо то же самое, наверно.

hvlad
И, насколько я могу судить, действительно исправить всё можно вот так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
//    Count := metadata.getCount(StatusIntf);
    Count := aMetaData.getCount(StatusIntf);

...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075859
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkorshun
Но есть еще TIBXOUTPUTSQLDA.Bind - там надо то же самое, наверно.
Туда я не смотрел, но если общая логика такая же, то скорее да, чем нет
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075890
bum_bum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
И, насколько я могу судить, действительно исправить всё можно вот так
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
//    Count := metadata.getCount(StatusIntf);
    Count := aMetaData.getCount(StatusIntf);

Большое человеческое СПАСИБО! Это... высший пилотаж! На неделе буду пробовать пересобрать IBX с этими исправлениями. От всей души благодарю.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075893
bum_bum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
bum_bumНе скучно с вами. С первого коммента понятно, что профессионалы, готовые помочь.

на будущее - не сообщайте подробности в середине топика 22331582 .
Делайте это сразу, чтобы вам не тыкали в "очевидные для вас вещи". Они очевидны вам, но не очевидны другим.
Кто тут на Лазаре пишет? Х.з.На будущее - читайте внимательнее, прежде чем поучать. В моём первом сообщении 22331304 содержалась та же информацию, которую потом пришлось просто повторить. И не надо никого тыкать, здесь не домашние питомцы, а разработчики, которые столкнулись с проблемой, которую создали не они. И я искренне благодарен тем, кто реально нам помогает. Хорошего Вам настроения... хоть иногда.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075897
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bum_bumсодержалась та же информацию, которую потом пришлось просто повторить
нет. вы не сказали, что проект исключительно на 4.0, и совместимость с предыдущими не нужна. Это бы сразу отсекло процентов 30 ответов.
bum_bumздесь не домашние питомцы, а разработчики, которые столкнулись с проблемой
why so serious?
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075899
bum_bum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad
vkorshun
Но есть еще TIBXOUTPUTSQLDA.Bind - там надо то же самое, наверно.
Туда я не смотрел, но если общая логика такая же, то скорее да, чем нет
Пересобрал IBX с внесёнными изменениями. Проверил на нескольких приложениях. Проблема испарилась! Крайне признателен Вам.
Для тех, кто идёт следом:
1. Открываем загруженный пакет fbintf [Пакеты -> Открыть загруженный пакет -> (Выбираем fbintf)];
2. Выбираем файл FB30Statement.pas и загружаем его;
3. Находим процедуру TIBXINPUTSQLDA.Bind;
4. Вносим изменения, которые подсказал hvlad:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
procedure TIBXINPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
var i: integer;
begin
  FMetaData := aMetaData;
  with FFirebird30ClientAPI do
  begin
//    Count := metadata.getCount(StatusIntf);
    Count := aMetaData.getCount(StatusIntf);
5. Аналогично корректируем процедуру: procedure TIBXOUTPUTSQLDA.Bind(aMetaData: Firebird.IMessageMetadata);
6. Компилируем, используем и от души благодарим того, кто нам помог!
Всем успехов и доброго здоровья!
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075905
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bum_bumздесь не домашние питомцы, а разработчики, которые столкнулись с проблемой, которую
создали не они.

Проблему создали авторы IBX. Разработчики пошли не на их форум, а сюда. Они точно не
питомцы?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075978
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdv
bum_bumНе скучно с вами. С первого коммента понятно, что профессионалы, готовые помочь.

на будущее - не сообщайте подробности в середине топика 22331582 .
Делайте это сразу, чтобы вам не тыкали в "очевидные для вас вещи". Они очевидны вам, но не очевидны другим.
Кто тут на Лазаре пишет? Х.з.
А что, есть ещё хоть одна клинетская библиотека, в которой заявлена поддержка FB4.0? Кроме обсуждаемой.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40075997
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bum_bum,

я надеюсь ты сообщил об этой проблеме автору IBX?
Если ещё нет, то надо бы сообщить, да и фикс заодно выслать
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076005
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ,

кхм. Я бы не сказал что IBX2 поддерживает все фичи 4.0. То что в неё внесли изменение, чтобы она в принципе умела работать под 4.0 это да.

Ну вот например новые типы данных (INT128, DECFLOAT), ну нету ни в Delphi, ни в FPC ничего нативного, чтобы с ними работать полноценно. Можно только хоть как-то на существующие типы данных отображение сделать. А вот поддержку TIME[STAMP] WITH TIMEZONE можно нативную прикрутить.

Что можно сказать о других компонентах доступа:

FireDac сейчас выходит только в месте с новой версией Delphi. Покупать новую версию ещё не каждый будет, так что что там я хз, но можно спросить Арефьева. Он есть на этом форуме в https://www.sql.ru/forum/delphi

Что там у IBDac, UniDac от devart я тоже хз.

В стандартной IBX от дельфи, точно ничего не будет.

В форке FibPlus только если вы сами прикрутите или найдётся энтузиаст, но этим надо заниматься. Но я побаиваюсь быть таким энтузиаст, всё таки форк лицензионно не чистый.

UIB вроде как полутруп. Последний коммит был 5 лет назад.

Мой вам совет, используйте то что и использовали. Если надо прям какую-то мегафичу из 4.0, переходите к вызовам Firebird API.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076022
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
Я бы не сказал что IBX2 поддерживает все фичи 4.0
Я не нашёл упоминаний об этом на их сайте. И Firebird.pas у них хоть и из fb4, но не свежий.

Симонов Денис
Ну вот например новые типы данных (INT128, DECFLOAT), ну нету ни в Delphi, ни в FPC ничего нативного, чтобы с ними работать полноценно
Не скажу за полноценно, но давно уже есть BCD.
На самый крайний случай - есть VARCHAR, так что клиент может как минимум показать данные этих типов.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076026
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денис
кхм. Я бы не сказал что IBX2 поддерживает все фичи 4.0. То что в неё внесли изменение, чтобы она в принципе умела работать под 4.0 это да.

Труд с ними, с большими числами.
IBX 2 хоть "в принципе" может. А больше никто не "может", даже "в принципе" (кроме ДС).
Я о том, что новый FB - "вещь в себе". Вроде бы релиз есть, но что с ним делать.

Симонов Денис
FireDac сейчас выходит только в месте с новой версией Delphi. Покупать новую версию ещё не каждый будет, так что что там я хз, но можно спросить Арефьева. Он есть на этом форуме в https://www.sql.ru/forum/delphi

Что там у IBDac, UniDac от devart я тоже хз.

В стандартной IBX от дельфи, точно ничего не будет.

В форке FibPlus только если вы сами прикрутите или найдётся энтузиаст, но этим надо заниматься. Но я побаиваюсь быть таким энтузиаст, всё таки форк лицензионно не чистый.

UIB вроде как полутруп. Последний коммит был 5 лет назад.


Я и говорю, что FB4.0 - непонятный продукт, ориентированный не на то, чтобы им пользоваться.
Типа как вебсайт, рассчитанный на несуществующие браузеры.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076035
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
FB4.0 - непонятный продукт, ориентированный не на то, чтобы им пользоваться.
Т.е. кроме больших чисел ты в нём вообще ничего не видишь ?
Сам понял что сказал-то ? :)
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076039
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

посмотрел код IBX2. Он умеет отображать DECFLOAT и INT128 (NUMERIC(38, x)) на BCD. Это уже хорошо. Для часовых поясов тоже кое-что есть.

использования BatchAPI пока не видел

ъъъъъ,

1. никто не мешает вам не пользоваться новыми типами данных. Просто работайте в режиме совместимости типов. В Firebird 4.0 и без этих типов есть множество вкусных плюшек
2. никто не мешает внести вам изменения в существующие компоненты доступа для поддержки новых фич 4.0. В конце концов их реализацию можно подсмотреть в IBX2
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076055
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис
посмотрел код IBX2. Он умеет отображать DECFLOAT и INT128 (NUMERIC(38, x)) на BCD. Это уже хорошо. Для часовых поясов тоже кое-что есть.
Спасибо, хоть какая-то определённость :)

Кстати, хоть я и не следил внимательно за jaybird и .net, но сдаётся мне там тоже есть поддержка больших чисел.
Даже если сейчас нет, то точно будет.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076067
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bum_bum,

стукнуться можно в PM из отсюда .

Но излагайте свои мысли осторожно, в просительном тоне - автор весьма самолюбив. Один раз обидевшись, будет потом игнорить ваши сообщения :)
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076085
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЕсли надо прям какую-то мегафичу из 4.0, переходите к вызовам Firebird API.

Внезапно!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076093
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

что тут смешного? Если какой-либо большой проект написан на компонентах аля IBX, то переписывать его на использование чистого Firebird API не целесообразно и очень долго. 99% необходимого функционала уже есть в компонентах доступа. Оставшийся 1%, если требуется, то ради него можно на чистом API написать кусочек.
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076105
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисчто тут смешного?

Не обращай внимания, это личные комплексы.

Проблема в том, что в некоторых компонентах добраться до API - весьма нетривиальная
задача. Всё, что ни попадя, включая хэндл загруженной библиотеки - каждый первый
компонентописатель делает приватным.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Глюки и регрессии при работе с FB 4.0 Release
    #40076107
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
07.06.2021 13:39, Dimitry Sibiryakov пишет:
> Проблема в том, что в некоторых компонентах добраться до API - весьма нетривиальная
> задача. Всё, что ни попадя, включая хэндл загруженной библиотеки - каждый первый
> компонентописатель делает приватным.

дикари! ©
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 74, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Глюки и регрессии при работе с FB 4.0 Release
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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