![]() |
|
|
![]()
|
|
| Marsianin |
|
|||
![]() Новичок Профиль Группа: Awaiting Authorisation Сообщений: 48 Регистрация: 24.11.2004 Репутация: нет Всего: нет |
Решил написать приложение-базу данных под FireMonkey на XE3.
В XE2 с LiveBindings не связывался, а тут решил и возникла проблема: У меня есть локальная база данных в MySQL (движок AnyDAC, который теперь купила Embarcadero и назвала FireDAC) в которой 190000 записей. Привязал я эту базу к TTMSFMXGrid (пробовал и стандартный глючный TGrid) - возникла проблема с тем, что Grid не отображал больше 200 записей. Погуглил - оказалось, что в LinkGridToDataSource1 надо выключить AutoBufferCount и выставить BufferCount вручную, т.е. во время открытия указать BufferCount:=RecordCount. Но тогда оно загружает все записи в память, что происходит очень долго даже на моём i7-3960X при 32Гб RAM. Но как я почитал - FMX Grid не хранит все ячейки, т.е. сам он должен шустро работать. Проблема в том, как сделать так, чтобы отображались все мои записи в Grid через этот LiveBindings, но грузилось всё шустро и по мере скроллинга подгружало с диска базу? Этот AutoBufferCount - вообще какая-то бредятина. Он всегда выдаёт 200 записей и всё. Что за бред? |
|||
|
||||
| Antimol |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 28.7.2007 Где: Украина, Киев Репутация: 4 Всего: 4 |
Скажите пожалуйста для какой задачи нужно просмотреть все 190000 записей?
Всегда удивлялся людям которые делают выборку на последних 2 года(~от 200’000 записей), при этом работают с последними 2-3-мя документами и утверждают что программа тормозит. Тут не в греде дело, а скорее всего в архитектуре. Долгое время я использовал компоненты DOA (Direct Oracle Access) там был параметр QueryAllRecord подгружались они по мере прокрутки, но суть в том что все что уже подгрузилось висит в памяти. С AnyDAC работал немного, там для Query или Table должен быть параметр который отвечает за загрузку всего или частичную загрузку данных. --------------------
Лучшее спасибо это "+" к репутации. Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи.... |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
зачем пользоватлю 190 тысяч!!! записей?!
Добавлено через 5 минут и 30 секунд Отключи сетку от НД и загрузи все записи. Попробуй как-то манипулировать записями, переходить по ним, цикле сделай. Я имею ввиду вот что. Выяснить нужно на каком этапе торможения, в сетке или в НД. Добавлено через 6 минут и 41 секунду Читай справку по AnyDAC!!! |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |