|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - C++ Builder. Отмена всех изменённых полей. Как решить? |
|
C/C++ - C++ Builder. Отмена всех изменённых полей. Как решить?
|
Новый участник Сообщения: 43 |
Есть форма, на которой есть DBGrid. Через нужные проводники он подключем к базе данных.
В эту таблицу можно добавлять, удалять, и редактировать записи. После изменения, добавления сразу же записывается в базу. К примеру: Я открыл эту форму, потолину данных из таблицы удалил, потовину изменил, что то добавил и нажал на форме кнопку "отменить". После чего все произведённые изменения должны отмениться и принять прежний вид. С кнопкой сохранить вроде ничего делать лишнего не надо. Какие есть варианты реализации такого? Я думал перед открытием формы делать копию DataSet'a и при нажатии кнопки "отмена" просто заменять DataSet. Но по моему это не очень хорошее решение, и я уверен что есть что то по лучше. Думаю много кто с этим сталкивался. |
|
Отправлено: 16:07, 11-08-2009 |
Ветеран Сообщения: 7315
|
Профиль | Отправить PM | Цитировать S1stem, самый правильный вариант - применить транзакции. "START TRANSACTION" в самом начале операций с БД, и "COMMIT" в самом конце, перед нажатием кнопки сохранения. На кнопку сброса повесить "ROLLBACK"
|
------- Отправлено: 16:30, 11-08-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Была мысль. Ниразу ещё не работал с транзакциями.
Буду разбираться |
Отправлено: 16:32, 11-08-2009 | #3 |
Ветеран Сообщения: 7315
|
Профиль | Отправить PM | Цитировать Цитата S1stem:
![]() |
|
------- Отправлено: 16:43, 11-08-2009 | #4 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Раньше писал для Access, сейчас перешли на MSSQL.
стоит вроде 2008 сервер |
|
Отправлено: 16:55, 11-08-2009 | #5 |
Ветеран Сообщения: 7315
|
Профиль | Отправить PM | Цитировать тогда надо уточнить насчет настройки транзакций. Можно хотя бы из консольного клиента попробовать.
|
------- Отправлено: 17:15, 11-08-2009 | #6 |
Новый участник Сообщения: 43
|
Профиль | Отправить PM | Цитировать Щас посаветовался и понял что там вроде как не желательно транзакцию начинать, потому что поля заполняет человек, и он может делать это слишком долго или уйти, в то время пока другие будут ещё подлючатся туда и.т.д. Нашли покачто немного другое решение.
|
Отправлено: 17:47, 11-08-2009 | #7 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|