Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.03.2017, 10:09   #1
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию Удерживается запись после закрытия TOracleDataSet

Добрый день! Подскажите, пожалуйста, в чем ошибка. Вызываю данные на экран через TOraDataSet - select for update. Работаю с данными. Сохраняю. После сохранения закрываю все датасеты командой Close. Другой пользователь не может обратится к этой записи из-за 54 ошибки (удерживается for update первым), пока первый пользователь не выйдет полностью из программы, т.е. не закроет сессию. как обойти этот момент, что бы запись освобождалась не выходя из программы
cherry25 вне форума Ответить с цитированием
Старый 22.03.2017, 10:16   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Транзакцию завершить нужно
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2017, 10:30   #3
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Транзакцию завершить нужно
так работает, я пробовала, но, я думаю, что это не совсем корректно, что-то не сделано верно на уровне сохранения/отмены. Close разве не должен убирать автоматически удерживание? Или, может, другая команда?
cherry25 вне форума Ответить с цитированием
Старый 22.03.2017, 10:32   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Чего не корректно? for update открывает транзакцию. Просто закрытие датасета ее не завершает )) Компонент этот не знаю, возможно в нем и есть какие-то настройки позволяющие автоматически завершить транзакцию при закрытии
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 22.03.2017 в 10:35.
Аватар вне форума Ответить с цитированием
Старый 22.03.2017, 10:41   #5
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Чего не корректно? for update открывает транзакцию. Просто закрытие датасета ее не завершает )) Компонент не знаю, возможно в нем и есть какие-то настройки позволяющие автоматически завершить транзакцию при закрытии
я имею в виду, что закрытие/открытие сессии решает вопрос. Возможно ли в пределах одного открытия сессии решить проблему?
cherry25 вне форума Ответить с цитированием
Старый 22.03.2017, 10:42   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Закрытие сессии завершает незакрытые транзакции.
Цитата:
Возможно ли в пределах одного открытия сессии решить проблему?
Возможно, см. #2
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2017, 10:59   #7
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию

спасибо, вопрос решен, Session.RallBack.
cherry25 вне форума Ответить с цитированием
Старый 22.03.2017, 11:07   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

RallBack отменит все изменения по незавершенным транзакциям, не?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 22.03.2017, 11:16   #9
cherry25
Форумчанин
 
Регистрация: 16.02.2009
Сообщений: 110
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
RallBack отменит все изменения по незавершенным транзакциям, не?
да, но у меня при любых отменах/закртытиях стоит вопрос "Сохранить ли ...", и, если "да", то Session.Commit. Программа небольшая, поэтому отрабатывает нормально
cherry25 вне форума Ответить с цитированием
Старый 22.03.2017, 22:08   #10
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,389
По умолчанию

Цитата:
Сообщение от cherry25 Посмотреть сообщение
Программа небольшая,
Почитал бы про создание (процедуры, функции и там ещё есть пакеты) потренировал и сделал бы его нормально.! из клиентское приложение делать (Commit и RallBack) это не хорошо...
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа продолжает работать после закрытия a.n.o.n.i.m C# (си шарп) 7 29.11.2015 01:53
Ноутбук не просыпается после закрытия крышки CodeNOT Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 2 18.11.2015 12:01
Висит приложение после закрытия STRELOK-2007 Общие вопросы Delphi 4 07.11.2014 18:25
Зацикливание открытия, после закрытия GWolf Microsoft Office Excel 6 09.11.2012 11:45
Можно ли после аварийного закрытия приложения внести/удалить запись из файла Ramires Общие вопросы Delphi 9 06.08.2008 10:38