[Moscow.pm] DBI и метод, возвращающий 1 значение
Андрей П. Ковбович
akovbovich на gmail.com
Чт Дек 15 05:05:11 PST 2011
http://www.books.ru/books/programmirovanie-na-perl-dbi-8193/
15 декабря 2011 г. 16:38 пользователь Nikolay Mishin <mi на ya.ru> написал:
> Да и все рекомендую читать рецепты для 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 mailing list
> moscow-pm на pm.org | http://moscow.pm.org
Подробная информация о списке рассылки Moscow-pm