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


ru.cgi.perl

 
 - RU.CGI.PERL ------------------------------------------------------------------
 From : vitus@ice.ru                         2:5020/400     22 Dec 2000  13:34:44
 To : yurik shestakov
 Subject : Re: MySQL
 -------------------------------------------------------------------------------- 
 
 yurik shestakov <yu@frigate.kiev.ua> wrote:
 
 ys>Serge Rodovnichenko <Serge.Rodovnichenko@f696.n5020.z2.fidonet.org> wrote:
 
 ys>Задачка: угадать результат исполнения на 3.23.latest такого  кода, например:
 
 ys>use DBI;
 ys>my $dbh ;
 ys>my $in_tx = 0;
 ys>eval {
 ys>  $dbh = DBI->connect('dbi:mysql:database=test;hostname=127.0.0.1;port=3306')
 ys>   or die "Can't connect: ".$DBI::errstr;
 
 ys>  $dbh->do('SET AUTOCOMMIT=0');# <<< mysql specific
 
 ys>  $dbh->do('BEGIN WORK') or die "can't start TX: ".$DBI::errstr;
 ys>  $in_tx = 1;
 ys>  $dbh->do(q{ CREATE TABLE myTable ( id integer, str char(20) ) })
 ys>   or die "Can't create table: ".$DBI::errstr;
 ys>  $dbh->do('ROLLBACK')
 ys>   or die "Can't rollback: ".$DBI::errstr;
 ys>  $in_tx = 0;
 ys>  $dbh->do('SET AUTOCOMMIT=1'); # <<< mysql specific
 ys>  $dbh->do('INSERT INTO myTable (id,str) VALUES (1,"one")')
 ys>   or die "Can't insert: ".$DBI::errstr;
 ys>  
 ys>  print "Oops. Insert completed :-]\n";
 ys>  };
 ys>if ($@) {
 ys>  print STDERR $@;
 ys>  $dbh->do('ROLLBACK') if $in_tx;
 ys>  }
 ys>$dbh->disconnect if defined $dbh;
 ys>exit 0;
 
 ys>p.s. DBD::mysql не "кушает" $dbh->commit и $dbh->rollback
 ys>p.p.s. Hа DBD::Informix  результат выполнения малость подправленного
 ys>кода будет таким:
 ys>  DBD::Informix::db do failed: SQL: -206: The specified table (mytable) 
 ys>  is not in the database.
 
 А на Oracle с учетом замены mySQL-специфик операций на стандартные
 DBI-ные эквиваленты - отработает. Ибо в Oracle DDL-оператор (напр,
 create table)
 автоматически коммитит текущую транзакцию.
 
 И из этого, между прочим, не следует что Oracle хуже Informix.
 -- 
 Victor Wagner      vitus@ice.ru
 Chief Technical Officer    Office:7-(095)-785-09-72
 Communiware.Net    Home: 7-(095)-135-46-61
 http://www.communiware.net      http://www.ice.ru/~vitus
 --- ifmail v.2.15dev5
  * Origin: Siberian Internet Company (2:5020/400)
 
 

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

 Тема:    Автор:    Дата:  
 Re: MySQL   yurik shestakov   21 Dec 2000 22:10:06 
 Re: MySQL   vitus@ice.ru   22 Dec 2000 13:34:44 
 Re: MySQL   yurik shestakov   23 Dec 2000 18:36:31 
Архивное /ru.cgi.perl/23183140d05e8.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional