|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Michael Samanov 2:550/5068.1515 28 Aug 2000 21:55:33 To : Juriy Goloveshkin Subject : Re: DBI+здоровые таблицы -------------------------------------------------------------------------------- Hello, Juriy! At Mon, 28 Aug 00 18:19:34 +0400 Juriy Goloveshkin wrote: JG> или приведи соответствующий условию код(perl+Pg+subject) :| Мне это напоминает разговор слепого с глухим, ну да ладно, чего не сделаешь из любви к искусству. Для простоты договоримся, что из нас двоих дурак - я, тем более, что, скорее всего, так оно и есть, иначе бы я уже бросил эту занимательную беседу. Берем твой пример и добавляем пару скобок #!/usr/bin/perl -w # $Id$ use strict; use locale; use POSIX qw(locale_h); use DBI; my $dbh=DBI->connect('dbi:Pg:dbname=ADDRESS') or die DBI->errstr; # для надежности защитимся от фатальных ошибок и заодно объявим блок # для локальных переменных eval { # отключаем автоматические транзакции до выхода из блока eval local $dbh->{AutoCommit} = 0; # упрощаем ловлю блох (таймауты и пр.) local $dbh->{RaiseError} = 1; # стартуем транзакцию явным образом (только вот я не уверен в синтаксисе) $dbh->begin; # объявляем курсор $dbh->do('declare test cursor for select * from addresses'); # крутим выборку while (my @test=$dbh->selectrow_array('fetch test')){ print "@test\n"; } # закрываем курсор $dbh->do('close test'); }; # закрываем транзакцию $@ ? $dbh->rollback : $dbh->commit; $dbh->disconnect; Все-таки жутко хочется поглядеть примерчик двойного соединения с базой с извлечением из этого практической пользы. Я так понимаю, это нечто вида: $dbh_man = DBI->connect(..., { AutoCommit = 0, ... }); $dbh_auto = DBI->connect(..., { AutoCommit = 1, ... }); Sincerely yours, Michael (mailto:mike@vlink.ru). --- ifmail v.2.14 * Origin: Home (2:550/5068.1515@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/79496ebd37c2.html, оценка из 5, голосов 10
|