![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мультинитиевое приложение для работы с БД
Blade © (2002-05-18 11:50:00)В одной нити процедура A:
procudure a
begin
DB.StartTransaction;
// Тут что-то делаем с БД
DB.Commit;
end;
В другой - процедура B:
procedure b
begin
DB.StartTransaction;
// Тут что-то делаем с БД
DB.Commit;
end;
Вопрос:
Вот если процедура А завершит свои действия и выполнит Commit() в то время, как В еще будет работать, что произойдет с изменениями, сделанными процедурой В? Они тоже закоммитятся?
Подскажите, плиз, вариант решения. Буду признателен, если получу ответ на мыло, да еще и с примером.
Desdechado (2002-05-18 12:10:00) [1]если транзакции изменяют разные данные, не зависящие друг от друга, то наиболее вероятно, что обе они завершатся успешно.
в противном случае, позднее завершающаяся не пройдет.
это как работа разных приложений с одними данными
Romkin (2002-05-18 11:55:00) [2]В разных нитях обязательнодолжны быть разные TSession & TDatabase (с разными именами), threadsafe только TSession.