Вниз
Скачать: 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-28787
Chizh
2003-02-01 13:52
2003.02.10
Перетаскивание файлов на CheckListBox


7-29127
Eugene
2002-12-06 16:05
2003.02.10
Как перестроить кэш значков Windows?


3-28614
helpme
2003-01-23 05:00
2003.02.10
В таблице FoxPro при открытии в Делфи вместо русских символов


14-29073
DiamondShark
2003-01-24 20:20
2003.02.10
Ой, ну его на фиг, такой праздник...


1-28724
KA_
2003-01-31 17:50
2003.02.10
TRichEdit




   Наверх