При выполнении приложением транзакций – цепочки связанных между собой запросов, каждый из которых обращается к БД, необходим механизм для контроля полноты их выполнения.
ADOdb, по-умолчанию, после каждого запроса вносит изменения в БД (autocommit).
Для управления транзакциями используется следующая конструкция:
// Начало транзакции (цепочки запросов) $parser->conn->StartTrans(); // Выполнение запросов по очереди запрос 1 ………… запрос N // Завершение или отмена транзакции //в зависимости от результатов выполнения всех запросов. $parser->conn->CompleteTrans ();
Запуск транзакции производится методом StartTrans(), CompleteTrans() обнаруживает возникшие SQL ошибки и делает обратную перемотку или Commit (подтверждение).
Примеры выполнения транзакций
$parser->conn->StartTrans(); $parser->conn->Execute($sql); $parser->conn->Execute($sql2); $parser->conn->CompleteTrans();
Вы также можете вызвать обратную перемотку, даже если никакой ошибки не произошло используя функцию FailTrans(). Обратите внимание, что обратная перемотка была сделана в CompleteTrans(), то в FailTrans() она сделана не будет:
$parser->->StartTrans(); $parser->->Execute($sql); if (!CheckRecords()) $parser->->FailTrans(); $parser->->Execute($sql2); $parser->->CompleteTrans();