![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновление DBGRID по таймеру [D7, IB6.x]
Lokk83 © (2007-06-22 02:25:00)Ночь добрая!
Посдкажите, плиз, есть на форме dbgrid и таймер, который часто опрашивает базу на изменения(хранимые процедуры) и проверяет условия. если выполняется эти условия тогда выполняется запрос на выборку из таблицы привязанной к dbgrid.
Вопрос в том, что если условия не выполняются, то Grid получается пустой.....как бы это обойти
Mike Kouzmine (2007-06-22 21:58:00) [1]Поставь обновление в событик переключающее цвет в лампочке.
Anatoly Podgoretsky (2007-06-22 19:59:00) [2]> Lokk83 (22.06.2007 17:11:59) [59]
Плюнь, пойди выпей пива и стране полезно.
Lokk83 (2007-06-22 17:11:00) [3]нет, не нашел, у меня примерно тоже самое что в [57].
работает все кроме нормального отображения списка событий
но у меня действительно почему то происходит очистка датасета
мне кажется
Плохиш (2007-06-22 16:02:00) [4]
> Lokk83 (22.06.07 15:48) [56]
АФФтар, ты уже нашёл, в какой момент твоя таблица закрывается и почему?
fdsa (2007-06-22 15:57:00) [5]Видел одну программу, фирма Спецавтоматика г.Тверь разрабатывает,
у них, есть графический интерфейс, где все красиво нарисовано. Если меняется состояние датчика - пишется событие в БД, меняется картинка отображающая состояние датчика, и есть что-то типа листбокса, который выскакивает поверх всех окон, куда добавляется сообщение вида:
22.06.2007 15:48:46 ШЛЕЙФ ХХХ ДАТЧИК УУУ - бла-бла-бла.
Lokk83 (2007-06-22 15:48:00) [6]так не положено, положено чтобы была графическая индикация и табличный вид
Sergey13 (2007-06-22 15:29:00) [7]> [54] Lokk83 (22.06.07 15:26)
Ну так лампочка (которая есть) загорелась - пусть ткнет в нее мышой и посмотрит детализацию. Обмозговал увиденной, обновить захотел - пусть еще ткнет.
Lokk83 (2007-06-22 15:26:00) [8]в том то и дело что не надо его обновлять два раза в секунду, а нужно только при изменениях в таблице, а изменения происходят не часто
Sergey13 (2007-06-22 15:00:00) [9]> [52] Mike Kouzmine © (22.06.07 14:59)
Не факт, что оператор что то поймет в гриде с обновлением 2 раза в секунду. 8-)
Mike Kouzmine (2007-06-22 14:59:00) [10]Sergey13 © (22.06.07 14:38) [51] Чтобы быть уверенным, что оператор понял. Лучше перебдеть, чем недобдеть, а так же видеть, что программа не зависла, а выполняет серьезную раьоту.
Sergey13 (2007-06-22 14:38:00) [11]> [50] Lokk83 (22.06.07 14:35)
Раз есть лампочки - зачем таблицу то обновлять по таймеру?
Lokk83 (2007-06-22 14:35:00) [12]лампочки есть, все есть, а НАДО чтобы была таблица ещё!
Sergey13 (2007-06-22 14:31:00) [13]> [46] Lokk83 (22.06.07 14:15)
> датчиков около 40
Ну и нарисуй 40 красных лампочек (можно компонентик какой нить красивый поискать для этого, можно просто Едит поставить с выводом кода состояния и выделением уветом) горящих или не горящих с указанием времени последней смнены состояния.
Lokk83 (2007-06-22 14:27:00) [14]это будет быстрее?
кстати, в стринг грид ручками получается надо забываить?
Плохиш (2007-06-22 14:21:00) [15]
> зачем это?
Чтобы не считать "количества строк"
Lokk83 (2007-06-22 14:15:00) [16]датчиков около 40, кстати, опрашивать она прекрасно успевает....
> Так и сравнивай время последней записи с временем последнего
> изменения. +
зачем это?
Johnmen (2007-06-22 14:04:00) [17]"ЭТО" никогда нормально работать не будет.
Прав Плохиш, грустно и скучно... А ещё немного тревожно...:)
Sergey13 (2007-06-22 14:04:00) [18]> [42] Lokk83 (22.06.07 13:57)
Сколько всего датчиков?
Плохиш (2007-06-22 14:03:00) [19]
> момент изменения я отлавливаю вычислением количества строк
> в начале процедуры и в конце и сравниваю их если больше
> тогда надо перезапрашивать данные, если нет то нет
Так и сравнивай время последней записи с временем последнего изменения. + [6]
Lokk83 (2007-06-22 13:57:00) [20]Работает так, у датчика есть несколько состояний(нрома, кз, пожар, обрыв, неисправность) каждый из них представляет собой на выходе либо 0 либо 1, в лог я заношу ТОЛЬКО изменения, и они действительно заносятся. мне нужно при наличи этих изменений перерисовывать dbgrid, чтобы оператор видел какой датчик во сколько изменил свое состояние напрмиер с норма на обрыв.
момент изменения я отлавливаю вычислением количества строк в начале процедуры и в конце и сравниваю их если больше тогда надо перезапрашивать данные, если нет то нет
Как мне сделать чтобы это нормально работало.....