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

Вниз

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

 
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 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.01 c
8-28940
_cooler
2002-10-29 19:45
2003.02.10
Документации по OpenGL


1-28709
Areon
2003-01-31 08:22
2003.02.10
Подмена имени


1-28755
race1
2003-02-01 11:28
2003.02.10
vcl50


3-28624
AnatoliJ
2003-01-14 02:19
2003.02.10
Pomogite mne please v DBGrid programno zapisat dannije


7-29120
Safonov
2002-12-05 16:41
2003.02.10
программирование Com порта на asm е





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский