<div>По-моему в DBI 100 лет как есть готовые методы для этого.</div><div> </div><div>my $result = $dbh->selectrow_array("SELECT count(1) FROM TABLE");</div><div>15.12.2011, 15:20, "Nikolay Mishin" <mi@ya.ru>:</div><blockquote type="cite"><p>Hi Miscow-pm<br /><br />не для кого не секрет, что часто, при обращении к базе данных возвращается только 1 значение , скажем <br />count и мы пишем процедуру:<br />sub get_one_value_from_db {<br />    my $dbh             = shift;<br />    my $cob_date        = shift;<br />    my $persent_load_sql = shift;<br /><br />    my $pst_sth = $dbh->prepare($persent_load_sql);<br />    $pst_sth->execute($cob_date);<br />    my $cnt_today = $pst_sth->fetchrow_array();<br /><br />    return $cnt_today;<br />}<br /><br />вопрос, почему в модуле DBI <br />просто нет метода, который возвращал бы значение, если ему передать<br />1.  коннект<br />2. sql<br />3. значение для инициализации<br />my $value = get_one_value_from_db( $dbh, $ref_source_data->{get_cnt_load_log},$cob_date);<br />ну и потом , чтобы в качестве параметров можно было передавать ссылку на массив,<br />если в запросе в условие where нужно вставлять более 1 значения<br />my $value = get_one_value_from_db( $dbh, $ref_source_data->{get_cnt_load_log},\@many_param);<br /><br />Вопрос: <br />1. почему уже нет такой функции?<br />2. может посоветуете модуль, где она есть,<br />просто чует мое сердце, что это уже 1000 раз написано,<br />Спасибо!<br /><br />p.s. это не важно, но sql nfrjq<br />$ref_source_data->{get_cnt_load_log}='<br />SELECT   COUNT (time_stamp) cnt<br />  FROM   my_table,<br />         (SELECT   TO_DATE (?, 'yyyy-mm-dd') + 2 cd FROM DUAL) dt<br /> WHERE   time_stamp BETWEEN dt.cd AND dt.cd + 1<br />';<br />--<br />Nikolay Mishin</p><span>-- <br />Moscow.pm mailing list<br /><a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org/">http://moscow.pm.org</a><br /></span></blockquote><div>-- <br />С Уважением, Login|off Nick or STork.</div>