Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

Многопоточность в приложениях баз данных...   Найти похожие ветки 

 
malefik ©   (2003-06-02 16:36) [0]

Есть база на Access ~100000 тысяч записей...
Пишем прогу которая из этой базы по ODBC забирает данные и кидает их в базу Interbase тоже по ODBC.....(не спрашиваете почему такой геморой .....уверяю так надо)....как лучше организовать работу приложения? (всмысле работа с потоками) что использовать? TThread? ( сама прога при работе тормозит безбожно)...????


 
passm ©   (2003-06-02 16:55) [1]

malefik © (02.06.03 16:36)> Наследуешь поток от TThread. Объявляешь свойства (FromDataSet: TDataSet, InsertQuery: TQuery). Можешь ссылку на Progressbar сделать... Перегружаешь TThread.Execute, чтобы пробежать по FromDataSet и выполнить InsertQuery на каждом шаге.
Но проблему с тормозами не решит. Это для удовольствия пользователя :)


 
needle ©   (2003-06-02 17:03) [2]

Будет у тебя эта обработка производится одним потоком, или несколькими, все равно выше 100% использования процессора не прыгнуть :-)
Вставку записей делай через SQL (insert into), это гораздо быстрее чем через Table.Insert, если есть компоненты визуализации (DBGrid, ВИДфиуд и прочь) отключи их -
DisableControls.
Вообще хорошая практика чтоб не создавалось видимости зависания приложения, внутри цикла вставить Application.ProcessMessages, тогда приложение будет перерисовывать свою форму и реагировать на мышу и клаву :-)


 
passm ©   (2003-06-02 17:13) [3]

Можно перекачку данных разбить на группы.
Например, в перекачиваемых данных есть некий код филиала. Делаешь выборку:
SELECT AF.ID, AF.NAME
FROM AFFILIATE AF
WHERE AF.ID IN (SELECT T1.AFFILIATE FROM TABLE1 T1)
Бежишь по этому запросу, пишешь пользователю "Обрабатываю данные по такому-то филиалу", открываешь основной запрос с выборкой по текущему филиалу и в Interbase.



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
11-84062
Vit@l
2002-09-26 21:20
2003.06.26
Создание компонента для KOL


1-84431
dfg
2003-06-09 21:21
2003.06.26
Можно ли вывести содержимое Tchart на предосмотр перед печатью?


1-84335
Spartak
2003-06-16 07:46
2003.06.26
Сохранение масива в файл и загрузка из файла


3-83931
st-av
2003-06-03 19:56
2003.06.26
DBGrid и DBLookupComboBox в одной упряжке


14-84749
Переяслов Григорий
2003-06-06 11:12
2003.06.26
Как вам это?