Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.04.11;
Скачать: [xml.tar.bz2];

Вниз

Уважаемые ГУРУ! Помогите чайнику немытому связать два датасета - 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.007 c
4-33008
HardTouch
2002-02-11 02:54
2002.04.11
как показывать иконки программных и других (зарегистрированных) форматов файлов


14-32971
Sks
2002-03-02 12:33
2002.04.11
Как программно найти настройку...


3-32665
tovSuhov
2002-03-20 12:05
2002.04.11
Oracle Pipes


4-33011
Yaro
2002-02-10 21:38
2002.04.11
Принудительное завершение работы программы, не имеющую окна или как получить Хэндл процесса


1-32870
QWest
2002-03-29 09:45
2002.04.11
Помогите други!!!!!!!!!1





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский