![]() |
C++ Builder. Отмена всех изменённых полей. Как решить?
Есть форма, на которой есть DBGrid. Через нужные проводники он подключем к базе данных.
В эту таблицу можно добавлять, удалять, и редактировать записи. После изменения, добавления сразу же записывается в базу. К примеру: Я открыл эту форму, потолину данных из таблицы удалил, потовину изменил, что то добавил и нажал на форме кнопку "отменить". После чего все произведённые изменения должны отмениться и принять прежний вид. С кнопкой сохранить вроде ничего делать лишнего не надо. Какие есть варианты реализации такого? Я думал перед открытием формы делать копию DataSet'a и при нажатии кнопки "отмена" просто заменять DataSet. Но по моему это не очень хорошее решение, и я уверен что есть что то по лучше. Думаю много кто с этим сталкивался. |
S1stem, самый правильный вариант - применить транзакции. "START TRANSACTION" в самом начале операций с БД, и "COMMIT" в самом конце, перед нажатием кнопки сохранения. На кнопку сброса повесить "ROLLBACK"
|
Была мысль. Ниразу ещё не работал с транзакциями.
Буду разбираться |
Цитата:
|
Раньше писал для Access, сейчас перешли на MSSQL.
стоит вроде 2008 сервер |
тогда надо уточнить насчет настройки транзакций. Можно хотя бы из консольного клиента попробовать.
|
Щас посаветовался и понял что там вроде как не желательно транзакцию начинать, потому что поля заполняет человек, и он может делать это слишком долго или уйти, в то время пока другие будут ещё подлючатся туда и.т.д. Нашли покачто немного другое решение.
|
Время: 00:10. |
Время: 00:10.
© OSzone.net 2001-