![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как обновить програмно данные в TDBGrid после изменения данныхю.
FShadow © (2005-11-29 16:57:00)Есть на главной форме TDBGrid в котором отображается некий набор данных. При добавлении записи появляется форма в которой вносятся данные. После закрытия этой формы данные в TDBGrid на главной форме должны обновиться.
Как это сделать?
Ega23 (2005-11-30 12:45:00) [1]
> не вижу смысла тут же перечитывать дерево из таблицы, просто
> добавляешь в таблицу данные, рисуешь элемент в дереве, проставляешь
> ему data и пытаешься получить данные в другой таблице по
> этой Data, если они есть.
> Зачем лишняя перечитка структуры дерева?
>
Действительно! И зачем вообще БД нужна? Хреначь всё в текстовые файлы - удобно и бесплатно. И послмотреть можно. Блокнотом.
Morgoth_ (2005-11-30 11:48:00) [2]не вижу смысла тут же перечитывать дерево из таблицы, просто добавляешь в таблицу данные, рисуешь элемент в дереве, проставляешь ему data и пытаешься получить данные в другой таблице по этой Data, если они есть.
Зачем лишняя перечитка структуры дерева?
Sergey13 (2005-11-30 09:18:00) [3]2 FShadow
Просто ты наверное данные вносишь не только на отдельной форме, но и минуя датасет. Естественно его после этого надо обновлять. Если вносить через датасет, то эта "проблема" исчезнет.
FShadow (2005-11-29 22:27:00) [4]Спасибо!
Ega23 (2005-11-29 18:06:00) [5]Ну если в твоём обработчике Sender не используется, то nil.
FShadow (2005-11-29 17:59:00) [6]А что в качестве Sender:TObject в нее заслать?
Ega23 (2005-11-29 17:56:00) [7]А, понял.
Вызови принудительно OnChange у TreeView.
FShadow (2005-11-29 17:45:00) [8]В TreeView отображается одна таблица из БД а в DBGrid другая. связаны они по полю EmpID, т.е. при OnChange происходит выборка всех записей для DBGrid у которых EmpID совпадает с TreeView.Data. Зачем здесь Locate?
Ega23 (2005-11-29 17:36:00) [9]Ну Locate сделал на нужную запись?
Ega23 (2005-11-29 17:36:00) [10]В смысле, НЕ сделал...
FShadow (2005-11-29 17:35:00) [11]Что значит не спозиционировал? Можно подробнее.
Ega23 (2005-11-29 17:29:00) [12]
> Но они не обновляются хотя в БД изменения внесены.
Так не бывает.
Может ты не спозиционировал набор данных?
FShadow (2005-11-29 17:26:00) [13]>Ega23
Не работает.
Опишу более подробно. На главной форме расположены TreeView и DBGrid.
По OnChange в TreeView отправляется запрос в БД для отображения данных в DBGrid. Так работает главная форма. И вот я добавляю данные в БД в новой форме. Закрываю ее пеерестраиваю TreeView и обновляю данные в DBGrid. Но они не обновляются хотя в БД изменения внесены. Если в TreeView перейти на др. ветку и вернуться назад то данные уже отображаются как надо.
Вот в чем вопрос.
Ega23 (2005-11-29 16:59:00) [14]Refresh набора данных, на который смотрит DBGrid. В простейшем случае:
With DBGrid.DataSource.DataSet do
begin
Close;
Open;
end;