Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1354558553
Irmantukas
2012-12-03 22:15
2013.08.11
TMS DBPlanner


15-1361520029
azlk52
2013-02-22 12:00
2013.08.11
максимальное количество подключений ХР


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


2-1354816115
TCount
2012-12-06 21:48
2013.08.11
Неувязочка с PopupMenu...


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





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский