Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.11.2015, 10:57
Аватар для Uniq!
Uniq! Uniq! вне форума
Местный
 
Регистрация: 29.09.2010
Сообщения: 539
Версия Delphi: Delphi XE3
Репутация: 374
По умолчанию Реализация повторяемых действий

У меня в программе необходимо выполнять последовательно несколько процедур с Базой Данных:
1) Скачать файл
2) Разобрать его в БД
3) На основании данных из БД создать отчёты

Я реализовал таблицу "Задачи" и меняю в ней поле "Статус" в процессе выполнения процедур.

Сейчас это реализовано очень криво (через цикл While true ... do )
и каждый раз, когда какая-то процедура начинает обрабатываться - выставляется ключ Busy в True и блокируются следующие процедуры.

Естественно в это время программа не отвечает на внешние действия.

Я так понимаю необходимо реализовать поток, который будет работать с процедурами из основного.
Подскажите с алгоритмом. (Может быть есть смысл как-то задействовать TTimer или это тоже будет "быдлокод")
Ответить с цитированием
  #2  
Старый 23.11.2015, 18:58
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Да в принципе использование TTimer в данном случае не такой уж и G-код, этот класс сам на отдельном потоке организован, меньше ручками клаву портить набивкой, только главное не забыть первой строкой в обработчике тика таймера установить у него еnabled = false, а последней обратно в true, тогда не будет повторного срабатывания, пока этот не отработает если выполняются тяжёлые задачи, да и "работать с процедурами из основного" намного легче чем из самописной верёвки
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Uniq! (09.12.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 23:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter