Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Artem Chuprina                       2:5020/371.32  01 Aug 2000  12:00:54
 To : Sergey Potapenko
 Subject : Re: Транзакции в DBI:*
 -------------------------------------------------------------------------------- 
 
 <Sergey_Potapenko@p122.f166.n463.z2.fidonet.org> wrote:
 
 SP>     Оцените следующий код пожалуйста, согласно документации вроде бы всё
 SP> правильно, но непонятно несколько вещей:
 
 SP>     - Как управлять уровнем изоляции транзакции ?
 
 Исполнением соответствующего SQL-выражения.
 
 SP>     - Где и когда начинается транзакция ?
 
 Автоматически.
 
 SP>       Явного вызова $dbh->starttransaction нет ?
 
 Hет. Можно считать, что commit или rollback автоматически начинает следующую
 транзакцию.
 
 SP>       Или она начнётся с первого вызова INSERT, UPDATE ... ?
 
 Вообще говоря, зависит от драйвера. Положено начинать с первого вызова,
 который может изменить содержимое базы, или раньше, в зависимости от
 интеллекта базы и драйвера. При достаточно продвинутом интеллекте транзакция
 может начинаться с вызова, реально изменяющего базу (средствами самой базы,
 естественно).
 
 SP>     # Получить коннект к базе без использования AutoCommit
 SP>     $dbh = DBI->connect('DBI:driver:base:host:port', $user, $password,
 SP>            {RaiseError => 1, PrintError => 1, AutoCommit => 0})
 SP>            || die $DBI::errstr;
 
 SP>     eval {
 
 SP>         ... действия над данными в базе
 
 SP>     };
 SP>     if ($@) {
 
 SP>         ... $dbh->commit;
 
 SP>     } else {
 
 SP>         ... $dbh->rollback;
 
 SP>     };
 
 Hаоборот. if ($@) надо делать rollback, а коммит - только если все живы.
 
 PrintError, наверное, лучше в 0, если у тебя RaiseError 1. Тогда ты сможешь
 управлять выводом сообщений.
 
 -- 
 Счастливо!
   Ран.
 --- ifmail v.2.14.os-p7-tma3
  * Origin: MemoNet (2:5020/371.32@fidonet)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Транзакции в DBI:*   Sergey Potapenko   31 Jul 2000 10:03:41 
 Re: Транзакции в DBI:*   Andrew Zhilenko   01 Aug 2000 00:50:13 
 Re: Транзакции в DBI:*   Artem Chuprina   01 Aug 2000 12:00:54 
 Транзакции в DBI:*   Kostya Belous   01 Aug 2000 15:59:00 
 Re: Транзакции в DBI:*   Serge Shikov   02 Aug 2000 09:34:57 
 Re: Транзакции в DBI:*   vitus@ice.ru   02 Aug 2000 15:12:14 
Архивное /ru.perl/34736031c3b8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional