![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сохранение текущего значения при работе с кэшем [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?