Форум: "Базы";
Текущий архив: 2013.08.11;
Скачать: [xml.tar.bz2];
Внизоткат изменений нескольких строк и видеть что поменяли Найти похожие ветки
← →
помогите новичку (2010-12-09 00:01) [0]Всем добрый день.
Юзаю FireBird + D7 + FibPlus компоненты.
Не возьму в толк - как подружить откат после изменения нескольких строк, одновременно с тем, чтобы видеть эти изменения в таблице???
Если транзакция короткая, то откат хрен сделаешь (в момент Post"а транзакция запускается и тут же подтверждается). Если транзакция длинная, то в таблице меняем строку, идём к другой строке, но предыдущая строка не видит изменений (т.к. пишущая транзакция не завершена...).
Для справки - параметры читающей транзакции:read
read_committed
nowait
rec_version
параметры пишущей:write
nowait
rec_version
read_committed
У набора данныхAutoCommit = false
, иpoStartTransaction = false
. транзацию ручками запускаю и подтверждаю или откатываю.
← →
12 © (2010-12-10 11:02) [1]а read_uncommitted нет?
а зачем вообще?
← →
Виталий Панасенко (2010-12-10 12:17) [2]
> 12 © (10.12.10 11:02) [1]
> а read_uncommitted нет?
а разве ФБ умеет читать не подтвержденные данные?
2 автор
Для того транзакции и существуют: либо все, либо ничего. Т.е. все, что ты описал, как проблему - нормальное поведение. И так должно быть. Если по другому, то это тогда аномалия.
← →
Anatoly Podgoretsky © (2010-12-10 16:04) [3]> Виталий Панасенко (10.12.2010 12:17:02) [2]
Интербейс умел, и даже умел читать грязные данные.
← →
помогите новичку (2010-12-12 00:02) [4]to Виталий Панасенко
> Т.е. все, что ты описал, как проблему - нормальное поведение.
> И так должно быть.
я не спорю. Тогда вопрос в том как корректно поработать с базой и потом откатиться, если данные после подтверждения транзакции уже в базе?
← →
12 © (2010-12-12 01:45) [5]
> помогите новичку (12.12.10 00:02) [4]
сделать копию БД?
← →
Германн © (2010-12-12 02:38) [6]
> Тогда вопрос в том как корректно поработать с базой и потом
> откатиться, если данные после подтверждения транзакции уже
> в базе?
>
Не ну какие-то движки могут хранить "историю", но "эт вряд ли."
Уж раз записал и подтвердил запись, то получи.
← →
Anatoly Podgoretsky © (2010-12-12 08:49) [7]Могут почти все, но надо поработь ручками.
← →
12 © (2010-12-12 14:15) [8]
> Могут почти все, но надо поработь ручками.
ну да
как примерно в магазине делали - делали копию, запускали расчеты, там менялись таблицы в процессе расчетов, а после оных, из копии апдейтили по нужным айдишникам
← →
Виталий Панасенко(дом) (2010-12-12 14:54) [9]
> Anatoly Podgoretsky © (10.12.10 16:04) [3]
По моему, очень неточная инфа...Версионники так не умеют
← →
Anatoly Podgoretsky © (2010-12-12 17:46) [10]Да и бог с ними, не очень то и хотелось.
← →
PEAKTOP © (2010-12-12 17:56) [11]> Anatoly Podgoretsky © (10.12.10 16:04) [3]
>
> Интербейс умел, и даже умел читать грязные данные.
Дед Толя, ты это... того... выдыхай ! в общем.
Какой, нафиг, dirty-read у версионника "по-определению" ?
(не спорю, у IB5.1 и выше до IB6.0 был частный случай, когда он вел себя подобным образом. но это было - исключение из правил при определенном совпадении звезд и фаз луны.).
← →
Anatoly Podgoretsky © (2010-12-12 18:23) [12]> PEAKTOP (12.12.2010 17:56:11) [11]
А не важно исключения это или нет, разве мы исключения ищем? Ну так бы и
говорили.
← →
YurikGL © (2010-12-13 22:03) [13]
> Не возьму в толк - как подружить откат после изменения нескольких
> строк, одновременно с тем, чтобы видеть эти изменения в
> таблице???
Делаем транзакцию реад_коммитед.
На формочке размещаем две кнопки "коммит ретаининг" и "роллбак ретаининг". Там же размещаем визуальные компоненты для редактирования таблицы.
Редактируем сколько влезет. Надо в базу записать - нажимаем первую кнопку. Надо откатить - вторую.
Ну и на закрытие формочки спрашиваем у пользователя откатывать что он там натворил или сохранять в базу.
← →
Виталий Панасенко (2010-12-14 09:33) [14]как вариант - использовать ОДНУ транзакцию, аутокоммит отключить...и
> YurikGL © (13.12.10 22:03) [13]
← →
Sergey13 © (2010-12-14 11:13) [15]> [0] помогите новичку (09.12.10 00:01)
А зачем это все? Откуда такая неуверенность, даже мнительность нездоровая, я бы сказал? 8-)
> Не возьму в толк - как подружить откат после изменения нескольких
> строк, одновременно с тем, чтобы видеть эти изменения в таблице???
Не надо это делать на уровне СУБД и транзакций. Надо это делать ручками. Завести протокол изменеий и разработать механизм отмены произведенных ранее действий. Типа "приход" убираем "списанием" и т.д. и т.п.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2013.08.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.002 c