Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запись в базу и ошибкаdeadlock [D7, FireBird]


Xmen ©   (2010-01-27 09:07:00) 

Запись в базу и ошибка
deadlock
update conflicts wit concurent update concurrent transaction number is 8272.
Это выходить когда в базу соединятся в одно время  более одного клиентского приложения и начинается запись.


Xmen   (2010-01-27 14:23:00) [1]

а есть ли разница при использование компонент табле и датасет на транзакцию?


Sergey13   (2010-01-27 13:42:00) [2]

ibase.ru


Xmen   (2010-01-27 13:21:00) [3]

как это можно сделать.
где можно это узнать более подробно?


Sergey13   (2010-01-27 13:13:00) [4]

> [3] Xmen   (27.01.10 12:44)

Коротко - пишущая транзакция не должна ничего ждать типа ввода пользователя и т.п. Она должна быть активна столько, сколько выполняется код внутри ее.


Xmen   (2010-01-27 12:44:00) [5]

коротко можете проконсультировать по этому, мне тоже кажется что я плохо это сделал.
В проге использовал ДатаСет, ДатаБэйс, транзакцию. как нужно организовать правильную транзакцию при котором можно было бы работать с базой из нескольких компов.


12   (2010-01-27 10:31:00) [6]

1. Делать транзакции вообще
2. Делать транзакции, как можно короче
3. Делать все единообразно
например, если программа обновляет А, потом после внутренних пересчетов Б,
то так желательно делать всегда. А то в другой части программы начинают с Б, и только потом доходят до А.


Sergey13   (2010-01-27 09:09:00) [7]

Это значит скорее всего, что ты плоховато работаешь с транзакциями.


Наверх

Титульная страница Поиск, карта сайта Написать письмо