Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C++ Builder. Отмена всех изменённых полей. Как решить?

Ответить
Настройки темы
C/C++ - C++ Builder. Отмена всех изменённых полей. Как решить?

Новый участник


Сообщения: 43
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть форма, на которой есть DBGrid. Через нужные проводники он подключем к базе данных.
В эту таблицу можно добавлять, удалять, и редактировать записи. После изменения, добавления сразу же записывается в базу.
К примеру: Я открыл эту форму, потолину данных из таблицы удалил, потовину изменил, что то добавил и нажал на форме кнопку "отменить". После чего все произведённые изменения должны отмениться и принять прежний вид.
С кнопкой сохранить вроде ничего делать лишнего не надо.

Какие есть варианты реализации такого?
Я думал перед открытием формы делать копию DataSet'a и при нажатии кнопки "отмена" просто заменять DataSet. Но по моему это не очень хорошее решение, и я уверен что есть что то по лучше. Думаю много кто с этим сталкивался.

Отправлено: 16:07, 11-08-2009

 

Аватара для dmitryst

Ветеран


Сообщения: 7315
Благодарности: 909

Профиль | Отправить PM | Цитировать


S1stem, самый правильный вариант - применить транзакции. "START TRANSACTION" в самом начале операций с БД, и "COMMIT" в самом конце, перед нажатием кнопки сохранения. На кнопку сброса повесить "ROLLBACK"

-------
Осваиваю FreeBSD


Отправлено: 16:30, 11-08-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 43
Благодарности: 1

Профиль | Отправить PM | Цитировать


Была мысль. Ниразу ещё не работал с транзакциями.
Буду разбираться

Отправлено: 16:32, 11-08-2009 | #3


Аватара для dmitryst

Ветеран


Сообщения: 7315
Благодарности: 909

Профиль | Отправить PM | Цитировать


Цитата S1stem:
Ниразу ещё не работал с транзакциями. »
хе-хе, я тоже . А сама БД какая? Если MySQl, то нужен танец с бубном. Фирменный. Чтобы autocommit убрать. С другими БД не знаю, как там у них по-умолчанию.

-------
Осваиваю FreeBSD


Отправлено: 16:43, 11-08-2009 | #4


Новый участник


Сообщения: 43
Благодарности: 1

Профиль | Отправить PM | Цитировать


Раньше писал для Access, сейчас перешли на MSSQL.
стоит вроде 2008 сервер

Отправлено: 16:55, 11-08-2009 | #5


Аватара для dmitryst

Ветеран


Сообщения: 7315
Благодарности: 909

Профиль | Отправить PM | Цитировать


тогда надо уточнить насчет настройки транзакций. Можно хотя бы из консольного клиента попробовать.

-------
Осваиваю FreeBSD


Отправлено: 17:15, 11-08-2009 | #6


Новый участник


Сообщения: 43
Благодарности: 1

Профиль | Отправить PM | Цитировать


Щас посаветовался и понял что там вроде как не желательно транзакцию начинать, потому что поля заполняет человек, и он может делать это слишком долго или уйти, в то время пока другие будут ещё подлючатся туда и.т.д. Нашли покачто немного другое решение.

Отправлено: 17:47, 11-08-2009 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C++ Builder. Отмена всех изменённых полей. Как решить?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
C/C++ - [C++Builder 2007] Две формы поверх всех окон и одна форма поверх другой crashtuak Программирование и базы данных 3 13-04-2009 16:33
Прочие БД - [решено] Как подсчитать сумму двух полей в Access 2003 S-ON Программирование и базы данных 2 14-04-2008 17:30
Как решить проблему с 2 сетями. Libra Сетевые технологии 5 25-04-2007 10:16
Как решить проблемму? Dmitry35 Общий по FreeBSD 18 18-01-2007 00:11
Как прикрутить МатЛаб к C++ Builder Domashenko Alexey Программирование и базы данных 2 08-12-2003 01:42




 
Переход