Да и все рекомендую читать рецепты для 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
