Форум: "Базы";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизМультинитиевое приложение для работы с БД Найти похожие ветки
← →
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 вся ветка
Форум: "Базы";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c