Вниз
Скачать: CL | DM;

Запись пачками   Найти похожие ветки 

 
nick-from ©   (2003-01-23 21:20) [0]

Есть Master-Detail связь (Организации и их заказы).
При заполнении заказов для организации конечно же лучше отправлять заказы на сервак порциями, а не Commit"иться после вновь заполненной записи.
Сделал форму, на которой Dataset показывает все заказы текущей организации. По кнопке "Добавить заказ" показыается форма для заполнения соответствующих полей нового заказа.
И с помощью Query новый заказ добавляется в таблицу заказов.
Проблема в том, что Dataset видит заказы, которые существовали на момент старта транзакции (видны старые заказы) и если сделать Commit и перечитать заказы снова (будут видны и все добавленные).

А сделать так, чтобы добавил заказ и он сразу стал виден в списке заказов данной организации - не получается.
Кто как решал, подскажите.


 
Sergey Masloff   (2003-01-23 22:34) [1]

Например CommitRetaining сделай. Переоткрытие транзакции с сохранением контекста. Кстати в 6 дельфи исправлен глюк с утечками памяти при CommitRetaining присутствовавший в 5.x


 
nick-from ©   (2003-01-23 22:48) [2]

Дык ведь вся фишка в том чтобы не делать Commit после каждой новой вставленной записи, можт их как-то в обычном Gride отображать (прибавлять после новой вставки), но ведь этож - геморой :)


 
Johnmen ©   (2003-01-24 01:12) [3]

В твоем случае надо однозначно обновлять НД заказов после выполнения запроса вставки.
Альтернатива :
- добавлять заказы прямо в НД заказов, при этом обеспечить его редактируемость
А еще лучше использовать компоненты прямого доступа (IBX, FIBPlus), там все строже, прозрачней, удобней и т.д.


 
nick-from ©   (2003-01-24 11:02) [4]

Использую FIBPlus. Сделал Dataset, который отображает заказы для текущей организации, можно и вставлять и удалять их там же.
Но вот еще в чем проблема: Таблица заказов содержит поля:
"Имя заказа", "ID его организации", "Цена", "Количество", "Стоимость"-(вычисляемое поле).
При заполнении нового заказа непосредственно в Dataset вычисляемое "Стоимость" отображается только после:
COMMIT, Dataset.CloseOpen(false)
Видимо действительно: "надо однозначно обновлять НД заказов после выполнения запроса вставки."



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
1-28917
Sewix
2003-01-31 09:13
2003.02.10
из string в PChar


3-28688
Ihor Osov'yak
2003-01-24 03:03
2003.02.10
Сервис + созданный в рантайме TADOConnection -> проблема с


4-29165
Big_Rom
2002-12-27 20:21
2003.02.10
как програмно поменять размер страницы принтера


14-28994
Checist [root]
2003-01-26 00:43
2003.02.10
Хелпы к дельфам


3-28684
Mahbyf
2003-01-24 15:01
2003.02.10
Удалить повторяющиеся записи




   Наверх