Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 MemableEh отложенные обновления  [new]
Алексаша
Member

Откуда: Левый берег
Сообщений: 343
Здравствуйте.

Delphi 10.2
Ehlib 9

На форме есть мастер датасетs MasterMemeTableEh и DetailMemTableEh. Оба компонента в режиме "With Driver".
У обоих компонентов CachedUpdates := True

Ситуация: вставляю одну запись в MasterMemeTableEh и более одной записи в DetailMemTableEh
В датасете DetailMemTableEh поле DetailFieldsKey наполняется отрицательными значениями. Оно и понято ИД пока неизвестно ...

MasterMemeTableEh.ApplyUpdates(-1)
Уже известен МастерИД. Пробегаюсь по всем записям DetailMemTableEh меняю в поле DetailFieldsKey значение значением ИД правильным с сервера.
Пора сделать DetailMemTableEh.ApplyUpdates(-1) ... И вот в этом моменте вопрос. Выполняются инструкции поочередно кот. были сделаны т.е. инсерт с отрицательным значением в поле DetailFields а потом апдейт. Как сделать сразу инсерт с значениями кот. уже подправлены? Или может както подправить этот буфер инструкций ?
8 мар 19, 11:21    [21827852]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6403
Что за датасеты (т.е. какая библиотека компонентов? SDAC и т.д.)?
8 мар 19, 13:04    [21827932]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Кроик Семён
Member

Откуда: СПб --> Dortmund
Сообщений: 6403
P.S.

Я раньше тоже частенько использовал CachedUpdates (библиотека компонентов DOA) и в случае master-detail если не хотел дёргать секвенции, приходилось как и у вас вначале -1 заполнять, потом менять перед отправкой. И это при том, что DOA не отправляет все значения если CachedUpdates, а только последние.

Сегодня же я применяю такой подход: секвенции всегда дёргаю для генерации Primary Key'a, а если нужен счетчик увеличивающийся без пропусков, то завожу в таблице второе поле.

И чего то забил на CachedUpdates, просто ставлю теперь везде Датасет.CommitOnPost=false и либо делаю Commit в конце, либо Rollback.
8 мар 19, 14:59    [21827987]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Алексаша
Member

Откуда: Левый берег
Сообщений: 343
Кроик Семён,

Библиотека Ehlib
9 мар 19, 09:52    [21828284]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Vlad F
Member

Откуда:
Сообщений: 781
Алексаша,

Мил человек, а почему бы тебе, непосредственно на их форуме об этом и не спросить?
http://forum.ehlib.com/ru/viewforum.php?f=4
9 мар 19, 13:42    [21828371]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
энди
Member

Откуда: Киров, Россия
Сообщений: 977
Неудобно наверное, мало того что "взял покататься", так еще и позвонить хозяину с просьбой объяснить почему хреново едет :)
9 мар 19, 20:49    [21828509]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Vlad F
Member

Откуда:
Сообщений: 781
энди,

Во-первых, погоди сразу плохо думать о человеке, а, потом, на сколько помню, на форуме у них, достаточно живом, так уж сразу про чеки и не спрашивают.))
9 мар 19, 21:01    [21828524]     Ответить | Цитировать Сообщить модератору
 Re: MemableEh отложенные обновления  [new]
Алексаша
Member

Откуда: Левый берег
Сообщений: 343
Vlad F,

Там тоже задал. Но по опыту здесь быстрее отвечают :) Может кто сталкивался и есть решение ...
10 мар 19, 17:28    [21828742]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить