|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
||||||
Скорость заполнения из dbgid в stringgrid07.12.2012, 00:40. Показов 2692. Ответов 14
Метки нет (Все метки)
Очень срочно нужна помощь.
Писал софт под учет товара + продажа, тестировал прогу на своей бд до 30 позиций. Все работало как нужно но дали мне почти 7000 позиций и на 11 столбиков. Тут я и Ближе к теме: загружаю из dbgid в stringgrid все позиции и [B] жду жду .... Результат открывается но проходит много времени. Вопрос как можно быстрей выгрузить данные из dbgid в stringgrid Знаю что подход неправильный но переделывать очень много а времени как всегда нет. ( Мой код:
0
|
||||||
| 07.12.2012, 00:40 | |
|
Ответы с готовыми решениями:
14
Поиск по dbgid Delphi 7 Stringgrid Нужно сделать цикл для заполнения Stringgrid данными из другого Stringgrid Ошибка заполнения StringGrid |
|
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
|
||||||
| 07.12.2012, 01:18 | ||||||
|
Уберите Repaint из цикла.
Да и вообще зачем еще Dbgrid дергать.
0
|
||||||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||||||
| 07.12.2012, 01:19 | ||||||
|
Можно оптимизировать так:
- вынести за пределы цикла присвоение заголовочных ячеек (зачем 70 тыс раз делать одно и то же присвоение?) - во внутреннем цикле сформировать строку из значений полей, разделенных символом (в примере это символ "|") и присвоить всем ячейкам одной строки стринггрида сразу всю строку - Repair ни формы, ни стриггрида не требуется. А это тоже ведь секунды накапливаются.
0
|
||||||
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
||
| 07.12.2012, 02:35 [ТС] | ||
|
Добавлено через 3 минуты
0
|
||
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
||
| 07.12.2012, 02:49 [ТС] | ||
|
Eсть мысль но может быть бредовая:-> Я думаю схитрить а если сделать копию скрытого стринггрида и заранее загрузить туда позиции а потом может через какую то функцию передать всем масивом может знаете способ или функцию strgida
0
|
||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||||||
| 07.12.2012, 11:26 | ||||||
|
Предложенный способ загрузки стринггрида построчно можно модифицировать и загружать столбцами.
Вот и будет это "передать всем массивом", только массивов будет не один, а по количеству колонок в стринггрид. Но "заряжать" эти несколько массивов нужно сразу по мере продвижения по выборке в датасете. Есть подозрение, что скорость заполнения во многом определяет внешний цикл перемещения по выборке и, тогда, как ни хитри, а уменьшить время не получится. "копия скрытого стринггрида" ничем не поможет, а способ присвоения построчно или по столбцам единственный "скоростной". Добавлено через 2 часа 11 минут Специально смоделировал ситуацию. Нашел таблицу с 25,5 тыс записей и 6 колонками (правда, в Firebird).
Автору темы мешают либо темная материя, либо древняя техника, либо буфер драйвера СУБД, в котором хранится выборка (ведь так никто и не знает что за БД использует автор). Если что-то другое, то без проекта и базы разобраться не получится.
0
|
||||||
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
|||||||
| 07.12.2012, 13:25 [ТС] | |||||||
|
RE
Техника Ноутбук Acer Aspire 5315 и HP Compaq(cq57) Вот что у меня в АDOConnection.ConnectionString
0
|
|||||||
|
504 / 106 / 16
Регистрация: 01.12.2011
Сообщений: 399
|
||
| 07.12.2012, 14:06 | ||
|
Какие дополнительные преимущества получает пользователь просматривая данные в Стринггриде, а не в обычном DBGride? А то как то все это напоминает чесание левой ногой правого уха.
0
|
||
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
|
| 07.12.2012, 14:13 [ТС] | |
|
Начал проектирование программы с работой с бд в первые и поставил на форму stgrid написал обработчики а теперь много переписывать если ставить на bdgrid. Преимуществ не каких пользователь выберет нужную строку она добавляется в список покупок там все считается. Дело в том что много ссылок идет на этот Stgrid место переменных как бы.
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 07.12.2012, 14:15 | |
|
Забубенил в таблицу Аксесс 17800 записей (6 колонок)
Заполнение стрингрида заняло ~3,3 сек. Да, аксесс, конечно, послабее, но и в этом случае не приходится долго ждать. Остается грешить на технику.
0
|
|
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
||
| 07.12.2012, 14:21 [ТС] | ||
|
А как же тут техника не думал что мой нот уж такой старый У меня под рукой есть HP он по мощней будет только он на 7ке. и если можно примерчик как вы это выполняли. зар.спс
0
|
||
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
|
| 07.12.2012, 14:21 | |
|
По-взрослому, надо все же переписывать. Стринггрид не та лошадка, на которую можно ставить в длительных забегах (скажем так, т.е., если предполагается работа с большими массивами данных в БД).
Но и в этом случае можно что-то сделать. Никогда пользователь не будет интересоваться 7000 записями одновременно. Отсюда вывод: фильтруем выборку по какому-либо сценарию (автору виднее, какая группа записей может пользователя интересовать одновременно).
0
|
|
|
9 / 9 / 4
Регистрация: 22.10.2010
Сообщений: 95
|
|
| 07.12.2012, 14:26 [ТС] | |
|
Я об этом думал так оно наверно и будет.
А впредь будет мне урок что нужно использовать dbgrid А то поленился почитать про компонент и вот итог. Ну думаю тема закрыта. Дальше сам. ВСЕМ БОЛЬШОЕ ОГРОМНОЕ СПАСИБО ЧТО ОТРЕАГИРОВАЛИ https://www.cyberforum.ru РУЛИТ
0
|
|
|
1076 / 989 / 340
Регистрация: 07.08.2012
Сообщений: 2,790
|
||||||
| 07.12.2012, 14:27 | ||||||
|
Так ведь, примерчик то все тот же самый, только доступ через ADO.
Но судя по всему индексы эти как мертвому припарка (хотя, в других СУБД индексирование полей дает существенный выигрыш в выборке данных).
0
|
||||||
|
731 / 407 / 95
Регистрация: 19.12.2010
Сообщений: 756
|
|
| 07.12.2012, 14:29 | |
|
Данные выбираются из таблицы, а не из dbgrid. Для выгрузки(отбора) данных используются запросы. отобранные данные показываются пользователю с использованием QReport,FastReport,RaveReport,Excel,Word ,HTML.
0
|
|
| 07.12.2012, 14:29 | |
|
Помогаю со студенческими работами здесь
15
От чего зависит скорость заполнения таблицы Excel? Как увеличить скорость заполнения ячеек MSFlexGrid? Просьба помочь с условием заполнения ячеек в StringGrid Применить текущий алгоритм заполнения StringGrid с произвольной ячейки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2.
Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники".
В. . .
|
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии.
. . .
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|