Да и все рекомендую читать рецепты для DBI
http://www.perlmonks.org/?node_id=284436 !!!

15.12.2011, 15:56, "Nikolay Mishin" <[email protected]>:
> Да, круто, работает, я вроде использовал, но потом забыл,
> но вопросы , как оказалось, задавать полезно
>
>     my $cnt_today = $dbh->selectrow_array( 
> $ref_source_data->{get_cnt_load_log},
>         {}, $cob_date );
> Всем спасибо,работает, заодно 30% кода модуля почистилось;))
>
> 15.12.2011, 15:29, "Sergiy Borodych" <[email protected]>:
>
>>  Посмотри в сторону selectrow_array
>>
>>  my ($count) = $dbh->selectrow_array( $statement, {}, @bind_params );
>>
>>  Да вообще посмотри документацию DBI - там много полезных методов ;)
>>
>>  2011/12/15 Nikolay Mishin <[email protected]>:
>>>   Hi Miscow-pm
>>>
>>>   не для кого не секрет, что часто, при обращении к базе данных 
>>> возвращается только 1 значение , скажем
>>>   count и мы пишем процедуру:
>>>   sub get_one_value_from_db {
>>>      my $dbh             = shift;
>>>      my $cob_date        = shift;
>>>      my $persent_load_sql = shift;
>>>
>>>      my $pst_sth = $dbh->prepare($persent_load_sql);
>>>      $pst_sth->execute($cob_date);
>>>      my $cnt_today = $pst_sth->fetchrow_array();
>>>
>>>      return $cnt_today;
>>>   }
>>>
>>>   вопрос, почему в модуле DBI
>>>   просто нет метода, который возвращал бы значение, если ему передать
>>>   1.  коннект
>>>   2. sql
>>>   3. значение для инициализации
>>>   my $value = get_one_value_from_db( $dbh, 
>>> $ref_source_data->{get_cnt_load_log},$cob_date);
>>>   ну и потом , чтобы в качестве параметров можно было передавать ссылку на 
>>> массив,
>>>   если в запросе в условие where нужно вставлять более 1 значения
>>>   my $value = get_one_value_from_db( $dbh, 
>>> $ref_source_data->{get_cnt_load_log},\@many_param);
>>>
>>>   Вопрос:
>>>   1. почему уже нет такой функции?
>>>   2. может посоветуете модуль, где она есть,
>>>   просто чует мое сердце, что это уже 1000 раз написано,
>>>   Спасибо!
>>>
>>>   p.s. это не важно, но sql nfrjq
>>>   $ref_source_data->{get_cnt_load_log}='
>>>   SELECT   COUNT (time_stamp) cnt
>>>    FROM   my_table,
>>>           (SELECT   TO_DATE (?, 'yyyy-mm-dd') + 2 cd FROM DUAL) dt
>>>    WHERE   time_stamp BETWEEN dt.cd AND dt.cd + 1
>>>   ';
>>>   --
>>>   Nikolay Mishin
>>>   --
>>>   Moscow.pm mailing list
>>>   [email protected] | http://moscow.pm.org
>>  --
>>  Sergiy Borodych
>>  --
>>  Moscow.pm mailing list
>>  [email protected] | http://moscow.pm.org
>
> --
> Nikolay Mishin
>
> --
> Moscow.pm mailing list
> [email protected] | http://moscow.pm.org

--
Nikolay Mishin
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить