[Moscow.pm] DBI и метод, возвращающий 1 значение
Nikolay Mishin
mi на ya.ru
Чт Дек 15 04:38:37 PST 2011
Да и все рекомендую читать рецепты для DBI
http://www.perlmonks.org/?node_id=284436 !!!
15.12.2011, 15:56, "Nikolay Mishin" <mi на ya.ru>:
> Да, круто, работает, я вроде использовал, но потом забыл,
> но вопросы , как оказалось, задавать полезно
>
> my $cnt_today = $dbh->selectrow_array( $ref_source_data->{get_cnt_load_log},
> {}, $cob_date );
> Всем спасибо,работает, заодно 30% кода модуля почистилось;))
>
> 15.12.2011, 15:29, "Sergiy Borodych" <sergiy.borodych на gmail.com>:
>
>> Посмотри в сторону selectrow_array
>>
>> my ($count) = $dbh->selectrow_array( $statement, {}, @bind_params );
>>
>> Да вообще посмотри документацию DBI - там много полезных методов ;)
>>
>> 2011/12/15 Nikolay Mishin <mi на ya.ru>:
>>> 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
>>> moscow-pm на pm.org | http://moscow.pm.org
>> --
>> Sergiy Borodych
>> --
>> Moscow.pm mailing list
>> moscow-pm на pm.org | http://moscow.pm.org
>
> --
> Nikolay Mishin
>
> --
> Moscow.pm mailing list
> moscow-pm на pm.org | http://moscow.pm.org
--
Nikolay Mishin
Подробная информация о списке рассылки Moscow-pm