Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.18;
Скачать: CL | DM;

Вниз

Как обновить програмно данные в TDBGrid после изменения данныхю.   Найти похожие ветки 

 
FShadow   (2005-11-29 16:57) [0]

Есть на главной форме TDBGrid в котором отображается некий набор данных. При добавлении записи появляется форма в которой вносятся данные. После закрытия этой формы данные в TDBGrid на главной форме должны обновиться.

Как это сделать?


 
Ega23 ©   (2005-11-29 16:59) [1]

Refresh набора данных, на который смотрит DBGrid. В простейшем случае:

With DBGrid.DataSource.DataSet do
begin
 Close;
 Open;
end;


 
FShadow   (2005-11-29 17:26) [2]

>Ega23
Не работает.

Опишу более подробно. На главной форме расположены TreeView и DBGrid.
По OnChange в TreeView отправляется запрос в БД для отображения данных в DBGrid. Так работает главная форма. И вот я добавляю данные в БД в новой форме. Закрываю ее пеерестраиваю TreeView и обновляю данные в DBGrid. Но они не обновляются хотя в БД изменения внесены. Если в TreeView перейти на др. ветку и вернуться назад то данные уже отображаются как надо.
Вот в чем вопрос.


 
Ega23 ©   (2005-11-29 17:29) [3]


> Но они не обновляются хотя в БД изменения внесены.


Так не бывает.
Может ты не спозиционировал набор данных?


 
FShadow   (2005-11-29 17:35) [4]

Что значит не спозиционировал? Можно подробнее.


 
Ega23 ©   (2005-11-29 17:36) [5]

Ну Locate сделал на нужную запись?


 
Ega23 ©   (2005-11-29 17:36) [6]

В смысле, НЕ сделал...


 
FShadow   (2005-11-29 17:45) [7]

В TreeView отображается одна таблица из БД а в DBGrid другая. связаны они по полю EmpID, т.е. при OnChange происходит выборка всех записей для DBGrid у которых EmpID совпадает с TreeView.Data. Зачем здесь Locate?


 
Ega23 ©   (2005-11-29 17:56) [8]

А, понял.
Вызови принудительно OnChange у TreeView.


 
FShadow   (2005-11-29 17:59) [9]

А что в качестве Sender:TObject  в нее заслать?


 
Ega23 ©   (2005-11-29 18:06) [10]

Ну если в твоём обработчике Sender не используется, то nil.


 
FShadow   (2005-11-29 22:27) [11]

Спасибо!


 
Sergey13 ©   (2005-11-30 09:18) [12]

2 FShadow
Просто ты наверное данные вносишь не только на отдельной форме, но и минуя датасет. Естественно его после этого надо обновлять. Если вносить через датасет, то эта "проблема" исчезнет.


 
Morgoth_   (2005-11-30 11:48) [13]

не вижу смысла тут же перечитывать дерево из таблицы, просто добавляешь в таблицу данные, рисуешь элемент в дереве, проставляешь ему data и пытаешься получить данные в другой таблице по этой Data, если они есть.
Зачем лишняя перечитка структуры дерева?


 
Ega23 ©   (2005-11-30 12:45) [14]


> не вижу смысла тут же перечитывать дерево из таблицы, просто
> добавляешь в таблицу данные, рисуешь элемент в дереве, проставляешь
> ему data и пытаешься получить данные в другой таблице по
> этой Data, если они есть.
> Зачем лишняя перечитка структуры дерева?
>


Действительно! И зачем вообще БД нужна? Хреначь всё в текстовые файлы - удобно и бесплатно. И послмотреть можно. Блокнотом.



Страницы: 1 вся ветка

Текущий архив: 2005.12.18;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.061 c
14-1132684095
ANB
2005-11-22 21:28
2005.12.18
Выбираю технологию


1-1132744928
К00е
2005-11-23 14:22
2005.12.18
Как заблокировать ctrl+alt+f1 комбинацию в litestep?


4-1129557433
ArtemESC
2005-10-17 17:57
2005.12.18
Перемещение формы


2-1133393751
Юрий Ж.
2005-12-01 02:35
2005.12.18
[?]TClientSocket & TServerSocket


2-1133328961
Laymer
2005-11-30 08:36
2005.12.18
TSQLConnection