Поиск:

Ответ в темуСоздание новой темы Создание опроса
> EhLib как бы правильно поступить 
:(
    Опции темы
Antony41
Дата 11.2.2014, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Ребят нужен совет профессионала
компоненты DbGridEh, MemTableEh, DataSetDriverEh лежат на форме и находятся в главном потоке, при этом есть таймер который переодически обновляет запрос в IbQuery, при обновлении приложение подтормаживает, это всё понятно почему, и для того чтобы не тормозило нужно выполнять запрос в отдельном потоке, но вот какие компоненты должны быть в этом отдельном потоке все три? как их правильно связать из потока? с DbGridEh?
PM MAIL   Вверх
Antony41
  Дата 20.2.2014, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



кто нибудь подскажет или ткните куда нибудь почитать.
PM MAIL   Вверх
Antony41
Дата 6.3.2014, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



 smile 
PM MAIL   Вверх
Bose
Дата 12.3.2014, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Можно вынести в поток IbQuery (но учитывай, что он должен работать через отдельное подключение (отдельный экземпляр IbDatabase + IbTransaction - там же в потоке)). Единственно, где это поможет - это в случае, если сам Sql запрос в бд выполняется долго.

Но перегонять данные из IbQuery в MemTableEh надо уже в главном потоке (возможно что придётся для этого отказаться от DataSetDriverEh).

p.s. кстати, от таймера для обновления данных можно вообще отказаться, а вместо этого использовать IbEvents (из БД в программу слать event, при обновлении данных). event-ы лучше кешировать и вызывать обновление с задержкой, так как при массовых обновлениях event-ов может быть много.
PM MAIL WWW Skype   Вверх
Antony41
Дата 14.3.2014, 08:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 27.12.2008

Репутация: нет
Всего: 1



Цитата(Bose @ 12.3.2014,  16:45)
Можно вынести в поток IbQuery (но учитывай, что он должен работать через отдельное подключение (отдельный экземпляр IbDatabase + IbTransaction - там же в потоке)). Единственно, где это поможет - это в случае, если сам Sql запрос в бд выполняется долго.

Но перегонять данные из IbQuery в MemTableEh надо уже в главном потоке (возможно что придётся для этого отказаться от DataSetDriverEh).

p.s. кстати, от таймера для обновления данных можно вообще отказаться, а вместо этого использовать IbEvents (из БД в программу слать event, при обновлении данных). event-ы лучше кешировать и вызывать обновление с задержкой, так как при массовых обновлениях event-ов может быть много.

Спасибо огромное, про Event'ы вобще не знал спасибо почитаю... Честно сказать перешел на DevExpress и использую сейчас cxGrid
PM MAIL   Вверх
Bose
Дата 15.3.2014, 23:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1458
Регистрация: 5.3.2005
Где: Riga, Latvia

Репутация: 9
Всего: 51



Цитата(Antony41 @  14.3.2014,  07:25 Найти цитируемый пост)
Честно сказать перешел на DevExpress и использую сейчас cxGrid 

С cxGrid-ом вроде всё вышеописанное верно. Или не?
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1314 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.