CachedUpdate

Обсуждение возникших проблем, предложений и ошибок PgDAC компонентов
Закрыто
DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

CachedUpdate

Сообщение DYUMON » Сб 19 ноя 2016 12:46

Подскажите как правильно использовать в PgDac такую функцию как CachedUpdate.
На данный момент я делал так. Использовал два PgQuery
Master
Detail
соответственно detail подчинен к master через уникальный ключ.
у detail включено

Код: Выделить всё

detail.cachedupdate:=true;
detail.Options.LocalMasterDetail:=True;
соответственно при записи данных делаю
master.post;
detail.applyupdates;
но в подчиненную таблицу ничего не попадает. Подскажите что необходимо сделать что бы данные попадали в таблицу.

AndreyZ
Devart Team
Сообщения: 328
Зарегистрирован: Чт 08 сен 2011 13:18

Re: CachedUpdate

Сообщение AndreyZ » Вт 22 ноя 2016 11:43

Мы не смогли воспроизвести указанную вами проблему, согласно вашим инструкциям. Постарайтесь составить небольшой пример для воспроизведения проблемы и прислать его нам через форму контакта на нашем сайте: https://www.devart.com/company/contactform.html . В пример включите DDL для тестовых таблиц.

Также уточните, воспроизводится ли указанная проблема на нашем демо-проекте PgDacDemo? Для этого в PgDacDemo, в юните MasterDetail перед открытием Detail датасета добавьте run-time код:

Код: Выделить всё

procedure TMasterDetailFrame.btOpenClick(Sender: TObject);
begin
...
  quDetail.CachedUpdates := True; // добавьте код сюда
По умолчанию, папка с демо-проектами PgDAC находится в общих документах, в подпапке Devart. Например, если вы используете RAD Studio Berlin 10.1, то по умолчанию путь к демосам PgDAC будет "C:\Users\Public\Documents\Devart\PgDAC for RAD Studio 10.1" .

DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

Re: CachedUpdate

Сообщение DYUMON » Пн 28 ноя 2016 14:35

День добрый.
Пока писал тестовый пример для вас, разобрался в самом механизме и теперь все работает как надо. Но все равно спасибо за ответ.

DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

Re: CachedUpdate

Сообщение DYUMON » Пн 28 ноя 2016 15:03

Хотя нет , возник такой вопрос.
Вот я нажимаю добавить запись в detail, затем начинаю добавлять записи в detail, допустим добавил 1 запись, затем опять нажимаю добавить в detail, предыдущая запись исчезает, появляется запись для добавления. И только когда я нажимаю

Код: Выделить всё

master.post;
detail.ApplyUpdates();
тогда в тогда в detail появляются все добавленные записи,
если же я редактирую уже добавленную запись в master то при добавление записей в detail они сразу отображаются в гриде.

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: CachedUpdate

Сообщение ViktorV » Вт 29 ноя 2016 14:52

По вашему описанию мы не можем воспроизвести данное поведение. Пожалуйста, составьте небольшой пример для воспроизведения и пришлите его нам.

DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

Re: CachedUpdate

Сообщение DYUMON » Вт 29 ноя 2016 17:12

Прилагаю тестовый пример, в архиве sql скрипт базы.
в тестовом примере нажимаете сначала "покдлючиться" , затем "добавить" в верхней панели, затем "добавить" в нижней панели, затем "сохранить" в нижней панели, запись в нижней панели исчезает, нажимаете еще раз "добавить" в нижней панели и снова "сохранить", затем нажимаете "сохранить" в верхней панели и тогда все добавленные записи появляются в гриде .
Вложения
pg_dac_test.7z
(57.65 КБ) 609 скачиваний

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: CachedUpdate

Сообщение ViktorV » Пт 02 дек 2016 11:19

Спасибо за информацию. Мы исследуем данное поведение PgDAC и сообщим Вам результат.

DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

Re: CachedUpdate

Сообщение DYUMON » Ср 14 дек 2016 16:27

День добрый.
Что то решилось с моим вопросом?

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: CachedUpdate

Сообщение ViktorV » Чт 15 дек 2016 10:36

Мы продолжаем исследовать проблему и сообщим вам, как только получим какие-либо результаты.

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: CachedUpdate

Сообщение ViktorV » Чт 16 фев 2017 14:36

Для решения вашей задачи, пожалуйста, попробуйте установить глобальную переменную RefreshParamsOnInsert, задекларированную в модуле MemDS unit, в True:

Код: Выделить всё

initialization
  RefreshParamsOnInsert := True;

DYUMON
Сообщения: 34
Зарегистрирован: Чт 05 июл 2012 05:21
Откуда: Новосибирск
Контактная информация:

Re: CachedUpdate

Сообщение DYUMON » Ср 15 мар 2017 11:18

Спасибо , вроде помогло.

ViktorV
Devart Team
Сообщения: 212
Зарегистрирован: Чт 31 июл 2014 09:52

Re: CachedUpdate

Сообщение ViktorV » Ср 15 мар 2017 11:26

Рады слышать, что проблема решена.
Обращайтесь к нам, если у Вас возникнут вопросы по PgDAC.

Закрыто