|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Konstantin Tokar 2:5020/400 23 Jun 2000 17:06:09 To : All Subject : Re: Oraperl, сссобака ! -------------------------------------------------------------------------------- > Опишите вкратце процедуру подачи SELECT запроса и получения результата. > Hа perldoc DBD::Oracle уже был, понятно не все. Hапример непонятно что > fetchrow_array возвращает. По доке вроде должна возвращаться строка из БД, а > на самом деле возвращает ссылку на что-то... > Посмотри документацию на DBI. fetchrow_array возвращает (по доке и в реальности) ссылку на массив. Вот пример fetchrow_array и $sth->fetchrow_hashref: =item Select_Hash Этот запрос настолько частый, что имеет смысл написать функцию для возвращения хэша, содержащего результат - если одно из полей уникально: указываем SQL запрос, возвращающий два столбца, или указываем явно имена переменных, из которых конструируем хэш. ../test/test2.pl =cut sub Select_Hash { my ($dbh, $query, $varname1, $varname2) = @_; my %h; local $_; my $sth = $dbh->prepare($query); $sth->execute(); if (!$sth) { die "Error:" . $dbh->errstr . "\n"; } if ( defined $varname1 && defined $varname2 ){ while (my $row = $sth->fetchrow_hashref()) { $h{$row->{$varname1}} = $row->{$varname2}; $row-> } } else { my $row; while ( $row = $sth->fetchrow_arrayref()) { $h{$$row[0]} = $$row[1]; } } return \%h; } -- Konstantin Tokar (http://www.mpei.ac.ru/tokar) --- ifmail v.2.15dev5 * Origin: Demos online service (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1277061216d90.html, оценка из 5, голосов 10
|