Главная страница
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.031 c
7-1079093913
Arm79
2004-03-12 15:18
2004.04.11
Перехват системных комбинаций клавиш для скринсайвера


11-1059639598
Kirill
2003-07-31 12:19
2004.04.11
EditBox


8-1076356910
Maksss
2004-02-09 23:01
2004.04.11
сходство в картинках


1-1080010195
Марат
2004-03-23 05:49
2004.04.11
StringGrid


6-1075905217
DillerXX
2004-02-04 17:33
2004.04.11
Закачка файлов