Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.08.11;
Скачать: CL | DM;

Вниз

откат изменений нескольких строк и видеть что поменяли   Найти похожие ветки 

 
помогите новичку   (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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.007 c
2-1354816115
TCount
2012-12-06 21:48
2013.08.11
Неувязочка с PopupMenu...


2-1355001893
wp2
2012-12-09 01:24
2013.08.11
wav-файл внутри exe-файла.


15-1363170145
O'ShinW
2013-03-13 14:22
2013.08.11
А нет ли тут бага? Закон о торговле.


15-1363329281
Jeer
2013-03-15 10:34
2013.08.11
Почти универсальный DB-менеджер


15-1362861003
Юрий
2013-03-10 00:30
2013.08.11
С днем рождения ! 10 марта 2013 воскресенье