Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизОбновление данных на форме Найти похожие ветки
← →
Stas © (2008-05-30 17:23) [40]>Ctrlc:=0; убрать на время.
← →
Reindeer Moss Eater © (2008-05-30 17:25) [41]>Ctrlc:=0; убрать на время.
>теперь положи второй грид на вторую форму в читающем приложении.
Положил - данные не обновляются....
← →
Stas © (2008-05-30 17:32) [42]Reindeer Moss Eater © (30.05.08 17:25) [41]
скорее всего у него цикл 1 раз прошел и запрос не переоткрылся
← →
Reindeer Moss Eater © (2008-05-30 17:48) [43]в грид тоже из-за цикла нет новых данных?
← →
ANB (2008-05-30 18:45) [44]
> procedure TStaticForm.Timer1Timer(Sender: TObject);
> begin
> if Ctrlc=0 then
> Ctrlc:=1;
> end;
У тебя опрос таблицы делается один раз при показе формы. Перенеси код :
открыть таблицу
прочитать данные
обновить инфу на форме
закрыть таблицу
в отдельный метод. И вызывай его из таймера.
ЗЫ. Зря посоветовал. Руки надо отрывать за такие решения.
← →
chargos © (2008-06-02 09:18) [45]Изменил немного код: Повесил весь этот код на кнопку(Button), вместо ADOTable2.Close написал ADOTable2.Requery(после Application.ProcessMessages;), убрал Таймер. Теперь обновляется нормально, но почему-то раз в три секунды. В первой проге стоит Грид, там обновляется нормально при нажатии. Не подскажете, в чем может быть причина такой задержки?
← →
MsGuns © (2008-06-02 10:38) [46]Убрать к тетушке ProcessMessages, обновление контролов сразу после перечитки (Requery), собственно перечитку после выполнения изменений. "Уведомление" показывающей формы о выполненный изменениях с помощью SendMessage из "изменяющей" формы.
← →
Stas © (2008-06-02 14:30) [47]MsGuns © (02.06.08 10:38) [46]
>SendMessage
Я думаю предпологается на разных машинах их использовать.
← →
chargos © (2008-06-02 15:44) [48]Если убрать ProcessMessages, то прога виснет. А программы предполагается использовать на разных компьютерах.
← →
Stas © (2008-06-02 16:10) [49]chargos © (02.06.08 09:18) [45]
т.е. если в 1-й программе изменили данные, во 2-й нажали на кнопку данные не изменились, через 3 сек, нжимаем на кнопку изменились?
← →
Stas © (2008-06-02 16:13) [50]chargos © (02.06.08 15:44) [48]
Давай так:
3-е приложение в котором лежит грид подключенный к таблице, и таймер 500 м.с.
на событие таймера делаем ADOTable1.Close; ADOTable1.Open;
Что происходит?
← →
chargos © (2008-06-03 08:36) [51]Stas ©
Первая программа изменяет данные в базе, вторая отображает их постоянно(вне зависимости от изменения базы). Данные обновляются в метки во второй программе. Т.е. во второй программе кнопку нажимаешь один раз и после этого данные постоянно обновляются.
← →
chargos © (2008-06-03 08:37) [52]Stas ©
> Давай так:
>3-е приложение в котором лежит грид подключенный к таблице, и таймер >500 м.с.на событие таймера делаем ADOTable1.Close; ADOTable1.Open;
>Что происходит?
То же самое, то есть данные в гриде обновляются спустя 3-4 секунды.
← →
Anatoly Podgoretsky © (2008-06-03 09:00) [53]> chargos (03.06.2008 8:37:52) [52]
4 секунды это задержка сброса кеша на диск.
← →
chargos © (2008-06-03 09:21) [54]Anatoly Podgoretsky ©
А можно как-нибудь время этой задержки уменьшить?
← →
Anatoly Podgoretsky © (2008-06-03 11:59) [55]> chargos (03.06.2008 9:21:54) [54]
Так это не единственная задержка, еще есть кеш винчестера.
Но тебе уже сказали отключи кеширование записи, но потом не матюгайся.
Для баз это обычное поведение, но как правило для промышленных и полу просмысленных SQL серверов и с выделением отдельного диска под базу, а то и множества дисков.
← →
ANB (2008-06-03 14:59) [56]
> но как правило для промышленных и полу просмысленных SQL
> серверов
Эти выдают все честно и сразу после коммита. Независимо от кэширования.
Страницы: 1 2 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.55 MB
Время: 0.04 c