Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Вниз

Rabota s BD   Найти похожие ветки 

 
Slv   (2003-05-23 10:59) [0]

Obrabotka tranzaktii v Mnogopolizovateliskom regime
Delphi 6 + Interbase 7. Rabotaet cerez componenti

Error:
Deadllock. Update conflicts with concurrent update.

Vopros: Kak oboiti ?


 
Zacho   (2003-05-23 11:02) [1]

Через какие компоненты ?
Читать http://www.ibase.ru/devinfo/ibtrans.htm , http://www.ibase.ru/devinfo/ibxtrans.htm и другие статьи на http://www.ibase.ru/develop.htm раздел "Транзакции, архитектура IB"


 
Slv   (2003-05-23 11:08) [2]

Через компоненты прямого доступа.
Проблема в том что когда несколько пользователей одновременно выполняют "Transaction.CommitRetaining" выдает вышеуказанную ошибкую


 
Zacho   (2003-05-23 11:11) [3]


> Slv (23.05.03 11:08)
> Через компоненты прямого доступа.

Через какие именно ? IBX, FIBPlus, IBO, ADO+IBProvider ...
И почитай все-таки статьи, и разберись как работать с транзакциями в IB


 
Slv   (2003-05-23 11:21) [4]

IBX.

Само собой почитаем. Но к сожалению уровень срочности равен значению "ВЧЕРА". Время решения вопроса минимально.


 
Zacho   (2003-05-23 11:31) [5]

Ладно, если кратко: это происходит, когда какя-либо транзакция пытается изменить запись, измененную в другой не завершившейся транзакции. Делай выводы.
Обходить не надо. Надо правильно обработать.


 
Johnmen   (2003-05-23 11:31) [6]

Как обойти ?
try
Transaction.CommitRetaining;
except
Transaction.RollbackRetaining;
end;


А по хорошему, читать, читать и читать документацию...:)


 
Slv   (2003-05-23 11:39) [7]



try
Transaction.CommitRetaining;
except
Transaction.RollbackRetaining;
end;

Этот вариант не приемлем т.к. в этом случае теряются данные.
Было бы хорошо чтобы по "except" эти данные установить в очередь на update данных.


 
Zacho   (2003-05-23 11:44) [8]


> Slv (23.05.03 11:39)

Просто укажи в параметрах транзакций WAIT.
Кстати, в этом случае тоже "потеряются" данные, внесенные транзакцией, завершившейся раньше.
И еще: пишущие транзакции должны быть как можно более короткими.


 
Johnmen   (2003-05-23 11:52) [9]

>Slv

Скондачка ты свою проблему не решишь ! Потому, что тебе не хватает знаний. Куда за ними идти, уже сказали. Не поняв механизмов и принципов работы SQL сервера и клиентского приложения, ты не сможешь грамотно реализовать желаемое...:)


 
Slv   (2003-05-23 11:56) [10]

Если можно еще немного о сути этой ситуации.
Есть форма на которой есть DB-компоненты и несколько компонент, посредством которых осуществляется ввод данных вручную.

Когда несколько пользователей одновременно активизируют "Save", обрабатываются данные, затем выполняется "Transaction.CommitRetaining". В этом месте и появляется ошибка, хотя пользователи "сидят" на разных записях


 
Zacho   (2003-05-23 12:01) [11]


> Slv (23.05.03 11:56)

Значит, не на разных.


 
Slv   (2003-05-23 12:12) [12]

Дело втом что пользователям расспределяются разные записи или группа записей из одной и той же таблицы.


 
Zacho   (2003-05-23 12:34) [13]


> Slv (23.05.03 12:12)
> Дело втом что пользователям расспределяются разные записи
> или группа записей из одной и той же таблицы.

И что ? Или уровень изоляции транзакций SNAPSHOT TABLE STABILITY ?


 
Slv   (2003-05-23 13:25) [14]

В IBTransaction. params =concurrency.


 
Zacho   (2003-05-23 13:40) [15]


> Slv (23.05.03 13:25)

При уровне изоляции SNAPSHOT (concurrency) Lock conflict может возникнуть только при изменении одной и той же записи разными транзакциями.



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.06.12;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
3-34700
Илайдж
2003-05-22 09:57
2003.06.12
Invalid BLOB Handle in record buffer


1-34833
Иванов С.
2003-06-03 04:25
2003.06.12
Как прогрммно нажать клавишу?


3-34691
mao
2003-05-21 18:34
2003.06.12
Кодировка и BDE


14-34977
paxer
2003-05-26 12:08
2003.06.12
Вот думаю переходить с Д5 на Д6. Стоит ли?


1-34911
romeomd
2003-06-01 21:22
2003.06.12
Работа с иконками





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский