![]() |
|
| Правила Форума редакция от 22.06.2020 |
|
|||||||
|
|
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже. |
|
![]() |
|
|
Опции темы | Опции просмотра |
Language
|
|
|
#1
|
|
Неактивный пользователь
Пол:
Регистрация: 25.03.2009
Сообщений: 7
Репутация: 0
|
Посоветуйте спецы, как лучше организовать редактирование записи БД
Имеем подключение к BD и таблицу Table Определенные поля (3 шт) записи выводятся в Grid через источник TableSrc (TDataSource) Полная запись имеет порядка 20 полей Редактирование записи будет производиться в модальной форме В голове рродилась идея просто редактировать данные с помощью компонет TDBEdit, TDBLookupComboBox, etc... привязанных к Table через TableSrc Все как бы хорошо, только на модальной форме есть пара кнопок "Ok" и "Cancel" Раз копоненты редактирования напрямую привязаны к таблице - то изменение данных в модальной форме сразу отображаются в Grid-е С "Ok" все понятно.... ![]() Возникает вопрос как обработать кнопку "Cancel" - т.е. вернуть данные измененные пользователем в первоначальный вид 1) Сделать RollBack - закрывает BD. Приходиится переоткрывать вручную. 2) Сделать RollBackRetaining данные данной транзакции отменяются. Но. При редактировании в модельном окне данные отобразились в Grid. И после закрытия модального окна омеют измененный вид в Grid-е. Хотя в БД изменения не провелись (отменились) Эти два метода конечно можно доработать - но для малых объемов. Переоткрывать постоянно большую таблицу, да еще и по сети считаю не корректно... 3) Пришел в голову пока писал первые два. Может открывать отдельную транзакцию для редактирования с ее собственными Commit и RollBack 4) Самый трудоемкий в сфере организации. Он описан неодднократно в книгах и в интернете - на модальную форму ложаться стандартные елементы редактирования - перед открытием окна редактирования выполняется команда Table.Edit - элементам редактирования присваиваются значания полей записи - по кнопке "Ок" загоняем измененные данные в поля записи и выполняем Table.Post - по кнопке "Cancel" просто выполняем Table.Cancel В этом методе все наверное будет работать и все прозрачно и понятно. Но вот как быть в таких случаях с полями связки Master-Detail Может у кого есть мысли по этому поводу и советы по существу Буду признателен Заранее спасибо Валицкий Яков Германович ICQ: 60289599 |
|
|
|
| Реклама: | intel core i5-12400 цена | мини барн дом | Мебельный магазин: стул бостон с мягким сиденьем купить - Переходи на сайт! | Магазин бытовой техники: samsung стиральная машина ww70agas22axld - переходи на сайт ТАЙМТВ! | приточная установка utr 50-25 v1.22-037*30.r (подвесная) |
|
|
#2
|
|
Неактивный пользователь
Пол:
Регистрация: 13.04.2009
Сообщений: 1
Репутация: 0
|
Лучше всего использовать следующие темы:
1. Загрузка данных, которые будут отредактированы (с SQLcomponent). 2. Показать данные о различных формах с 2 кнопки "ОК" и "Отмена" 3. В зависимости от нажатой кнопку обновить базу данных или ничего не делать. Это самый безопасный способ. Также нет связи с базой данных, если изменить данные. |
|
|
|
|
|
#3
|
|
Постоялец
![]() ![]() Пол:
Регистрация: 13.03.2008
Адрес: Минск
Сообщений: 257
Репутация: 231
|
В чем проблема реализовать именно так, за сеанс редактирования обработка только одной записи происходит. Пока не будет вызван метод post или не перейдете на другую запись, текущая не будет сохранена.
__________________
|
|
|
|
|
|
#4
|
|
Я не использую компоненты типа Tdb.. . Беру стандартные, закачиваю туда данные, а потом отправляю, если надо. Наиболее надежный способ, правда ручками прийдется поработать, зато всегда уверен в результате.
|
|
|
|
|
|
|
#5
|
|
Неактивный пользователь
Регистрация: 29.05.2009
Сообщений: 5
Репутация: 1
|
А использовать режим CachedUpdates не пробовали?
|
|
|
|
![]() |
Похожие темы
|
||||
| Тема | Автор | Раздел | Ответов | Последнее сообщение |
| Редактирование .torrent | REAL_XLD | P2P-системы & Soft | 12 | 01.10.2009 07:31 |
| Редактирование DVD | alextk | Просмотр, конверторы и монтаж Аудио&Видео | 4 | 28.08.2008 16:33 |
| Редактирование DVD | Zepp | Запись CD и DVD | 2 | 16.01.2008 21:04 |
| Редактирование инсталляторов | fire4x | Архив | 8 | 21.04.2007 18:00 |
| Редактирование DVD | slonidze | Архив | 3 | 28.08.2006 04:20 |
|
|