Глюки rxDBGrid

Модераторы: alexs, Модераторы

Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Это баг лазаря. Причём баз при сборке в win32. В линуе всё норм.
Я сегодня приложение для винды в линухе из-за этого собирал.
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

Ждем нового лазаря....
Да, потерял ссылку на Ваш Zeos_ex (потребность вроде пришла, а хвост.... увы...)
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Аватара пользователя
Xenar
постоялец
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Сообщение Xenar »

alexs писал(а):Может - но у меня экцепшен не поднимался.
Можешь пример простейший сделать?
Чтобы устойчиво выдавалась ошибка.


Сделал пример, но он подключается к моему боевому серву, и если есть возможность подключить его к своей mysql базе, то вот он.
В базе одна таблица с именем autorisation и int полем n_point.

При использования фильтра получаем устойчивую ошибку.
Ревизия RXLib 2746
Вложения
Скрин
Скрин
test.zip
Пример
(125.21 КБ) 697 скачиваний
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Судя по картинке - не работает RefreshSQL
Причём тут грид?
Аватара пользователя
Xenar
постоялец
Сообщения: 158
Зарегистрирован: 08.06.2011 12:54:07

Сообщение Xenar »

alexs писал(а):Судя по картинке - не работает RefreshSQL
Причём тут грид?

Хм, RefreshSQL это где его искать и почему он на ревизиях выше 2694 перестал работать?
ronin
постоялец
Сообщения: 174
Зарегистрирован: 26.01.2010 23:14:46

Сообщение ronin »

ревизия 2767, хотя ревизия думаю не суть как важна, при включённом футере и количестве строк от 3000 до 6000 грид встаёт колом, открытие формы с гридом происходит в течении 30-40 секунд, в принципе объём данных в гриде не совсем стандартный, но есть журналы, которые будут периодически смотреть, данных будет за месяц, объём примерно как указал выше... ситуация плачевная, я расстроен, посмотрел алгоритм подсчёта итогов, если я правильно понял там цикл по столбцам и пересчёт итогов... как то некрасиво получается, для примера на таких же объёмах DBGridEh или cxGrid ведут себя увереннее, задержек нет вообще... я конечно понимаю что сыр бесплатный, но неужели ничего нельзя сделать? в математике не силён, придумать быстрый алгоритм навряд ли смогу... сейчас задумался о замене компонента на вменяемый вариант...

или я в чём то не прав? есть личный опыт работы с такими объёмами данных?

P.S. да, при отключении футера всё ок, время открытия формы упирается во время выполнения запроса, не более
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Тормозит именно открытие? Или любое обновление тоже?
Попробуй пересчёт сделать в ручную - в гриде только выводить данные.
Там особо и оптимизировать нечего - тупой цикл по всему набору данных.
ssadragon
постоялец
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Сообщение ssadragon »

alexs Подскажите пожалуйста, а можно как-то узнать что отработал по назначению метод OptimizeColumnsWidth(AColList: string) у TRxDBGrid`а при включенной опции rdgDblClickOptimizeColWidth?
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

События такого нет
А зачем?
ssadragon
постоялец
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Сообщение ssadragon »

alexs писал(а):А зачем?

Просто я сам слежу за восстановлением/сохранением PropertyStorage. Соответственно когда происходит изменение размера колонки (onColumnSized) я возвожу флаг, а вот когда изменение колонки происходит через двойное нажатие, то я получается ни как об этом не могу узнать, хотя фактически изменение размера колонки произошло. Вот такие пироги!!!
Аватара пользователя
alexs
долгожитель
Сообщения: 4066
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Хоршо. Я посмотрю - как правильно реализовать.

Добавлено спустя 13 минут 23 секунды:
Добавил вызов обработчика после пересчёта ширины.
ssadragon
постоялец
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Сообщение ssadragon »

alexs писал(а):Добавил вызов обработчика после пересчёта ширины.

:wink: Работает!!!
Аватара пользователя
Little_Roo
энтузиаст
Сообщения: 639
Зарегистрирован: 27.02.2009 18:56:36
Откуда: Санкт-Петербург

Сообщение Little_Roo »

svn 2800 дает AV в RxDbGrid
Откат на svn 2796 - полет нормальный

Lazarus 1.1 r42538 FPC 2.7.1 i386-win32-win32/win64
Win XP sp3
ssadragon
постоялец
Сообщения: 148
Зарегистрирован: 03.12.2012 20:21:35

Сообщение ssadragon »

Little_Roo хм! У меня все нормально!
lazarus 1.3 rev. 43047 FPC 2.6.2 i386-win32-win32/win64 Win 7
За исключением вот этого в rxdbgrid.pas
-{$if ((lcl_major = 1) and (lcl_minor = 1))}
+//{$if ((lcl_major = 1) and (lcl_minor = 1))}
{$DEFINE RX_USE_LCL_DEVEL}
-{$ENDIF}
+//{$ENDIF}

Ну не компилится он с этими ифами

P.S. и еще пришлось добавить property OnMouseWheel; - ну вот понадобилось оно мене
Ответить