![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Не судите строго
Форумчанин
Регистрация: 31.03.2011
Сообщений: 202
|
![]()
Всем привет
есть программа которая работает с 2 базами(mysql & access). Нужно постоянно проверять наличия новой информации в базах, когда была одна база постоянно делал запросы с помощю таймера, но теперь базы две и я думаю что было бы логично вынести мониторинг в отдельные два потока, с потоками еще не работал, можете посоветовать как реализовать структуру(что, где и когда описывать, вызывать?).Или как лучше сделать? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
Описать класс на основе опишите поток TDbInfoGet, который будет иметь строку DBId, пишите там в execute всякие выборки из баз. На основе сравнения с DBId в execute работает соотв. код.
Затем поток возвращает событие сданными OnInfoGet(Thread:DbInfoGet; Id:string; Info:TCustomData). Потоки можно хранить TThreadList с включенной FreeObTrminate = true. |
![]() |
![]() |
![]() |
#3 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#4 |
Не судите строго
Форумчанин
Регистрация: 31.03.2011
Сообщений: 202
|
![]()
сделал так как смог, может что то подправите.
Код:
Последний раз редактировалось Stilet; 03.03.2015 в 19:46. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 31.05.2011
Сообщений: 301
|
![]()
showmessage вроде нельзя использовать в потоке
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Считаю, что сервер должен быть сервером и не фиг ему клиентам оповещения слать. Хотя некоторые СУБД и могут это, но не мускул и access. Т.е. опрос со стороны клиента, но умный. Не опрашивать актуальные таблицы, возможно здоровенные, на предмет изменения данных, а некую служебную таблицу(цы), в которую триггера актуальных таблиц записывают информацию о своем обновлении на уровне идентификаторов записей и вида обновления. При опросе предусмотреть и обновление этой таблицы, дабы клиенту повторно не послать одно и то же. Как то так
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 07.12.2011
Сообщений: 1,025
|
![]()
и это не поток... это "ждалка"
поток вечно крутится, не надо при любом шухере делать потоку Free. а оповещать через синхнониз или постмессадж
Не стесняемся, плюсуем!
![]() Последний раз редактировалось Slym; 03.03.2015 в 19:43. |
![]() |
![]() |
![]() |
#8 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,926
|
![]() |
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Может, но он сам выступает клиентом по отношению к серверу баз данных и опять 25
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 977
|
![]()
а может в ассес базе подключить таблицы мускула и вернутся к решённой задаче (профит
![]()
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
Последний раз редактировалось IliaIT; 04.03.2015 в 11:12. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с потоками. | bilibian | Общие вопросы Delphi | 14 | 22.02.2014 19:54 |
Работа с потоками | ThreadDelphi | Общие вопросы Delphi | 3 | 08.04.2012 18:58 |
работа с потоками | MetR | Помощь студентам | 1 | 04.12.2011 01:32 |
Работа с потоками | QuadroX | Помощь студентам | 10 | 20.09.2011 14:24 |
работа с потоками | session | Общие вопросы C/C++ | 6 | 21.06.2010 17:13 |