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

Вниз

Уважаемые ГУРУ! Помогите чайнику немытому связать два датасета - II   Найти похожие ветки 

 
ZDN ©   (2002-03-20 10:17) [0]

Уважаемые ГУРУ! Помогите чайнику немытому связать два датасета, пожалуйста -
II

Это уже обсуждалось здесь:
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1016175548&n=1
Спасибо всем, кто помог, но проблема оказалась намного сложнее чем я
предполагал.

Сходная ситуация вот здесь
http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1016295466&n=1
/кэширование данных связанных таблиц/

Краткое описание проблемы:

Создал 2 IBDataSet"а: ClientDataSet и CarsDataSet, написал для них все
запросы InsertSQL, DeleteSQL и т.п. SelectSQL: SELECT * FROM CARS
WHERE IDCLIENT=:CLIENT.IDCLIENT;
InsertSQL: INSERT INTO CARS (IDCLIENT, MARKA) VALUES (:IDCLIENT,
:MARKA)
ModifySQL: UPDATE CARS SET MARKA=:MARKA WHERE IDCARS=:Old_IDCARS
ClientDataSet - главный, CarsDataSet -подчиненный, DataSource для
CarsDataSet сделал равным ClientSource
Включил кэширование. Для навигации по записям использую 2 DBNavigator"a.
При вставке новой записи в CarsDataSet делаю так:

procedure TDM.CarsDataSetAfterInsert(DataSet: TDataSet);
begin
if CarsSource.State=dsInsert then
begin
CarsQuery.Open;
DataSet.FieldValues["IDCARS"]:=CarsQuery.Fields[0].asInteger;

DataSet.FieldValues["IDCLIENT"]:=DM.ClientDataSet.FieldValues["IDCLIENT"];
CarsQuery.Close;
end;
end;

Проблема в следующем: вношу изменения в CarsDataSet. Если по нажатию кнопки
не сохраняю данные на сервере,
Try
DM.UnalDB.ApplyUpdates([DM.CarsDataSet]);
Except
MessageDlg("Изменения не сохранены", mtError, [mbOK], 0);
DM.CarsDataSet.CancelUpdates;
End;
то при навигации, вставке новой записи в СlientDataSet теряются
кэшированные данные в CarsDataSet.
Здесь http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1016295466&n=1
предлагалось "перед перемещениием по master реши - сохранять или сбрасывать
изменения в detail"
А по другому нельзя?
Думаю дискуссия по этой проблеме будет интересна многим.


 
Alexandr ©   (2002-03-20 10:19) [1]

а какая тут дискуссия? Однозначно, изменения надо сохранять при перемещении по мастеру, т.к. при этот datail переоткрывается и несохраненные изменения теряются.



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

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

Наверх




Память: 0.47 MB
Время: 0.01 c
3-32704
visa
2002-03-21 19:40
2002.04.11
проект без BDE


3-32706
Борис
2002-03-22 08:31
2002.04.11
Копирование строки из DBGrid в буфер


6-32932
Victor
2002-01-25 16:15
2002.04.11
Широковещательные сообщения по сети


1-32795
Yaro
2002-03-31 16:04
2002.04.11
Ради бога! Прочтите это!


1-32854
PEC
2002-03-28 15:12
2002.04.11
Народ !