Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > автообновление данных


Автор: alex63 6.2.2007, 04:20
    Извиняюсь за ламерский вопросsmile как можно написать обработчик событий для OnUpdateData в DataSource , чтоб новые записи в БД автоматически отоброжались в DBGride . Работаю через ADOConnction-> ADOQuery->DataSource->DBGrid 

Автор: Akella 6.2.2007, 09:26
Ничего обычно не пишут в этом обработчике. Просто после редактирования набора данных переоткрывай запрос.

Добавлено @ 09:27 
1. Добавляем запись.
2. Узнаем её ID и запоминаем в переменной.
3. Закрываем набор данных.
4. Открываем набор данных.
5. С помощью Locate находим ID.

Автор: Rodman 6.2.2007, 10:13
Цитата(Akella @  6.2.2007,  08:26 Найти цитируемый пост)
Просто после редактирования набора данных переоткрывай запрос.

Код

ADOQuery.Close;
ADOQuery.Open;

и будет тебе счастье

Автор: alex63 7.2.2007, 14:33
  А может есть ещё какой нибудь другой способ , ентот при большой базе данных не очень годится , слишком всё всё медленно происходит smile(

Автор: Данкинг 7.2.2007, 14:41
Цитата(Akella @ 6.2.2007,  09:26)
Ничего обычно не пишут в этом обработчике. Просто после редактирования набора данных переоткрывай запрос.

Т.е., этот способ - правильный? smile Но действительно же тормозно, да и мелькание строк при перемещении указателя на запомненную позицию обычно раздражает юзверя.
Правда, другого способа я не знаю пока. smile 

Автор: Akella 7.2.2007, 16:05
Цитата(Данкинг @  7.2.2007,  14:41 Найти цитируемый пост)
Но действительно же тормозно, да и мелькание строк при перемещении указателя на запомненную позицию обычно раздражает юзверя.


юзайте код наподобие такого и будет вам счастье
Код

Var
 id:intger;
....

screen.cursor := crSQLWait;
 i:= запоминаем id записи;
Dataset.disablecontrols;
try
  Dataset.close;
  Dataset.open;
  Dataset.locate('ID',[id],[]);
finally
  Dataset.enablecontrols;
  screen.cursor := crDefault;
end;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)