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

Вниз

TClientDataSet.ApplyUpdates(0) & TClientDataSet.Refresh   Найти похожие ветки 

 
31512 ©   (2004-04-14 14:40) [0]

В моём приложении почему-то 3 одинаковых ClientDataSet ведут себя по разному.

Ситуация такова.
Приятно, когда где-то на форме лежит кнопка "Сохранить". Я такую и сделал для каждой из 3х форм редактирования 3х разных справочников.

При нажатии на эту кнопку у всех трёх форм исполняется один и тот же код:


procedure T...Form.SaveToolButtonClick(Sender: TObject);
begin
SaveChanges(DataModule1.ORGANISATIONS_CDS, DBGrid1)
end;


В другом модуле описана эта функция


function SaveChanges(ClientDataSet : TClientDataSet; Grid : TDBGrid = nil) : boolean;
begin
 if (ClientDataSet.ChangeCount > 0) then
    begin
      ClientDataSet.ApplyUpdates(0);
      ClientDataSet.Refresh;
      Result := True;
    end
 else Result := False;
 if Grid<>nil then TDBGrid(Grid).Refresh;
end;


По идее изменения должны тут же отобразиться на DBGride.
Но это происходит только в одной из форм.
При этом все ClientDataSetы одинаковые (разница только в том, что поставляют данные из разных таблиц, т.е. список полей разный, Providerы разные), а
DBGridы абсолютно одинаковые.
На серверной стороне TDataSetProviderы одинаковые (отличаются DataSetами).

При удалении тоже самое. Почему это может быть?


 
31512 ©   (2004-04-14 14:45) [1]

И почему на серверной строне у источников данных обязательно свойство Active должно быть False, чтобы всё вышеописанное работало нормально?


 
Nikolay M. ©   (2004-04-14 14:46) [2]

1)

> SaveChanges(DataModule1.ORGANISATIONS_CDS, DBGrid1)

В точности ЭТОТ код исполняется в 3 разных случаях? И CDS один и тот же?

2)

> Grid : TDBGrid = nil

...

> if Grid<>nil then TDBGrid(Grid).Refresh

Зачем приведение и рефреш ГРИДа?


 
serge35   (2004-04-14 16:40) [3]

Поставь точку останова внутри функции и посмотри, заходит ли программа в эту фунуцию или нет.
С какими параметрами ты запускаешь функцию из остальных форм?


 
31512 ©   (2004-04-15 11:06) [4]

Ага, спасибо всем! Разобрался!



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

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

Наверх




Память: 0.47 MB
Время: 0.027 c
4-1079599813
b0bi
2004-03-18 11:50
2004.04.11
Как получить Handle


6-1076327014
Behemoth
2004-02-09 14:43
2004.04.11
Проблема с IdTCPServer....


1-1082234534
Игорь
2004-04-18 00:42
2004.04.11
Как добавить данные в меню на выпадающем меню, на рабочем столе?


9-1065013171
ZLODey
2003-10-01 16:59
2004.04.11
Баги при компиляции игры или примера...


1-1082660847
Боян Георгиев
2004-04-22 23:07
2004.04.11
Курсор