Объясните мне, пожалуйста, зачем нужны транзакции, для чего они используются, в каких случаях, как правильно этим пользоваться. Читаю-читаю, и никак не пойму
Snake-84
20.10.2008, 15:32
Транзакция используется обычно для ускорения работы кода, т.к. не записывается каждый измененный объект отдельно, а все пишется одним блоком функцией "ЗафиксироватьТранзакцию()". Скорость обычно отличается в разы!!! Так же иногда бывает необходимо отменить все изменения (например обнаружили критический незаполненный реквизит). Тогда функция "ОтменитьТранзакцию()" откатывает все изменения, внесенные в базу, после "НачатьТранзакцию()". Понятно объяснил?
Только в момент открытия транзакции никто не может пользоваться базой. Это как монопольный режим (кстати в монопольном режиме от транзакций толку нет).
Snake-84, да, спасибо:) все поняла:)
Михаил Госьков
22.10.2008, 12:32
Не совсем верно. Назначение транзакции не повышении скорости, а в том, чтобы добиться синхронного изменения данных в базе по принципу "все-или-ничего". После момента начала транзакции все изменения в базе становятся обратимыми: если прервать транзакцию до ее записи, эти изменения не будут записаны, база данных вернется к моменту начала транзакции. Например, после начала транзакции введены и проведены несколько документов, добавлены записи в справочники товаров, покупателей, цен и т.д.
Если такую транзакцию прервать, не записывать, то все эти документы и записи исчезнут.
Мастер_миража
22.10.2008, 13:13
а еще каждая операция выполняемая с базой данных(добавление, удаление и т.д.) представляет собой небольшую транзакцию...
так что транзакции в коде везде и всюду
поетому ты не можешь не знать как ими пользоваться
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.