Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сохранение текущего значения при работе с кэшем [D5]


Бульбаш ©   (2005-01-28 09:56:00) 

При использовании кэширования не сохраняются данные (при applyupdates)если не покинуть текущую строку. Я пока выхожу из ситуации через Next перед сохранением. Может существует более изящное решение?


Desdechado   (2005-02-11 18:36:00) [1]

почему не проходит? только потому, что ты его в комбинации с Close использушь? так разнеси...


Бульбаш   (2005-02-11 17:54:00) [2]

Такой обработчик я уже пробовал:
if DM.Org.State in [dsEdit, dsInsert] then DM.Org.Post;
DM.Org.Close; DM.Org.Open; А на BeforeClose датасета вешаю обработчик разноски кэшированных данных в базу. Т.е. получается когда пост вызывается неявно (переходом на другую строку) или нажмешь enter после изменения все OK. А выдача поста программно не проходит :(


Desdechado   (2005-02-11 17:42:00) [3]

if( dataset.state in [dsEdit, dsInsert] ) then
dataset.post;

кстати, как это у тебя на post сразу оракл ругается? ты ж вроде используешь кэширование?


Бульбаш   (2005-02-11 17:05:00) [4]

Т.е.получается что если не вышел из поля или не нажал Enter изменения не фиксируются. Если принудительно просто дать Post - вылетает по ORA-01086 (была сделана попытка отката к savepoint, которая не установлена). Но если нажать сохранить в навигаторе - то все фиксируется - знать бы как там все это реализовано?


stud   (2005-02-11 16:53:00) [5]

так может state датасета анализировать? если в редактировании или вставке постить данные.


Val   (2005-02-11 16:45:00) [6]

не работает что? нет Post? нет OnExit?


Бульбаш   (2005-02-11 16:43:00) [7]

И так не работает :( а updatesPending я анализирую в обработчике нажатия кнопки...


Val   (2005-02-11 16:28:00) [8]

Кcтати, for info, при использовании кеша, м.б. недостаточно одного Modified, стоит анализировать и UpdatesPending:
if DataSet.Modified or TBDEDataSet(DataSet).UpdatesPending...


Val   (2005-02-11 16:24:00) [9]

пост OnExit сетки, если открыт датасет.


Бульбаш   (2005-02-11 16:11:00) [10]

Пришлось вернуться к этой проблеме. Чуть подробнее: Пользователь редактирует запись в гриде: например ставит птичку в chekbox или редактирует текстовое поле и сразу давит на кнопку сохранить (по ней же идет ApplyUpdate и т.д.),не переходя на другое поле и не нажимая enter. После переоткрытия набора данных обновления поля не происходит. Пробую принудительный пост:
if DM.Org.Modified then DM.Org.Post; тот же результат... Если же использовать навигатор - нажатием его Post-а сохраняется.(но навигатор здесь неприемлем). Подскажите как решить проблемку плиз


Бульбаш   (2005-01-28 10:36:00) [11]

Действительно :)


Sergey13   (2005-01-28 10:12:00) [12]

А Next применяется? 8-)
Просто Next неявно вызывает Post который тебе и нужен повидимому.


Бульбаш   (2005-01-28 10:07:00) [13]

А Post в этом случае применяется к кэшированным данным?


Sergey13   (2005-01-28 10:01:00) [14]

Так может Post вместо Next?


Наверх

Титульная страница Поиск, карта сайта Написать письмо