Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Транзакции в справочниках и документах, когда лучше AutoCommit := True или False 
:(
    Опции темы
Delphist
Дата 23.12.2010, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Deniz @  23.12.2010,  13:06 Найти цитируемый пост)
 так что автокоммит здесь не сильно проигрывает

А мож все же автосохранение сделать?


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Deniz
Дата 23.12.2010, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Delphist @  23.12.2010,  14:19 Найти цитируемый пост)
А мож все же автосохранение сделать?
решать тебе, но прочти еще раз мой последний пост про отложенное автосохранение (5 мин хватит для такой ситуации).


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Delphist
  Дата 23.12.2010, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Deniz @  23.12.2010,  13:06 Найти цитируемый пост)
При отложенном сохранении удаленных записей есть момент, когда:
1. Пользователь 1 удалил запись но не сохранил.
2. Пользователь 1 добавил несколько других записей.
3. Пользователь 2 добавил запись со ссылкой(FK) на удаленную запись.
4. Пользователь 1 пытается сохранить изменения и получает Exception.
5. Пользователь 1 делает откат всех изменений, в т.ч. и результат работы п.2
 


Не совсем так, а будет вот так, я тока что проверил:
1. Пользователь 1 удалил запись но не сохранил.
2. Пользователь 1 добавил несколько других записей.
3. Пользователь 2 добавил запись со ссылкой(FK) на удаленную запись.
Пользователю 2 выдастся сообщение нельзя добавить запись т.к. есть не 
подтвержденные данные или другой пользователь сети редактирует 
данную запись


Firebird 2.0 автоматом в подобных ситуациях генерит сообщение содержащее фразу wait transaction
вот ее я и проверяю и выдаю понятное сообщение


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Deniz
Дата 23.12.2010, 15:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1251
Регистрация: 16.10.2004
Где: Новый Уренгой

Репутация: 8
Всего: 44



Цитата(Delphist @  23.12.2010,  16:52 Найти цитируемый пост)
Firebird 2.0 автоматом в подобных ситуациях генерит сообщение
какие параметры транзакции?
Цитата(Delphist @  23.12.2010,  16:52 Найти цитируемый пост)
вот ее я и проверяю и выдаю понятное сообщение
понятное кому? Пользователю 2?
Ему надо срочно добавить запись, а он не может, потому как пользователь 1 ушел на обед с оставленной блокировкой.
И создать новую запись(такую же) в справочнике пользователь 2 тоже не сможет, потому как уникальный индекс.
Вот и начинается веселуха.


--------------------
"Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с)
PM ICQ   Вверх
Delphist
Дата 23.12.2010, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphist Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2145
Регистрация: 3.2.2004
Где: всегда в сети

Репутация: 1
Всего: 3



Цитата(Deniz @  23.12.2010,  16:25 Найти цитируемый пост)
какие параметры транзакции?

Код

read_committed
rec_version
nowait

Цитата(Deniz @  23.12.2010,  16:25 Найти цитируемый пост)
понятное кому? Пользователю 2?

Да
Цитата(Deniz @  23.12.2010,  16:25 Найти цитируемый пост)
И создать новую запись(такую же) в справочнике пользователь 2 тоже не сможет

пользователь 2 создать новую запись сможет, он не сможет всего лишь менять (редактировать, удалять) нашу проблемную запись, а также работать с объектами  связанные с этой записью по Foreign Key

Это сообщение отредактировал(а) Delphist - 23.12.2010, 17:15


--------------------
ProcessInfo 1-ая моя программа (аналог spyxx.exe с гораздо большим функц-ом - внедрение dll в адр. простр. процесса, перехват API-функций, разбор приложения на окна мн.др).
Когда-то давным-давно использовал это...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0572 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.