Вниз
Скачать: CL | DM;

Мультинитиевое приложение для работы с БД   Найти похожие ветки 

← →
Blade ©   (2002-05-18 11:50) [0]

В одной нити процедура A:

procudure a
begin
DB.StartTransaction;
// Тут что-то делаем с БД
DB.Commit;
end;


В другой - процедура B:

procedure b
begin
DB.StartTransaction;
// Тут что-то делаем с БД
DB.Commit;
end;


Вопрос:

Вот если процедура А завершит свои действия и выполнит Commit() в то время, как В еще будет работать, что произойдет с изменениями, сделанными процедурой В? Они тоже закоммитятся?
Подскажите, плиз, вариант решения. Буду признателен, если получу ответ на мыло, да еще и с примером.


← →
Romkin ©   (2002-05-18 11:55) [1]

В разных нитях обязательно должны быть разные TSession & TDatabase (с разными именами), threadsafe только TSession.


← →
Desdechado ©   (2002-05-18 12:10) [2]

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



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.007 c
4-31056
новенький в Делфи
2002-04-10 02:22
2002.06.10
Почему не работает?


1-30862
LakeMan
2002-05-29 12:42
2002.06.10
Переделка компонент


14-30999
drpass
2002-05-07 21:18
2002.06.10
Гибернация в Win2000/XP


1-30890
Leo^Sun
2002-05-30 06:58
2002.06.10
Список чисел


1-30855
Alex Dobrushin
2002-05-29 14:28
2002.06.10
Как узнать, что закрывается Word




   Наверх