[Moscow.pm] DBI и метод, возвращающий 1 значение

Nikolay Mishin mi на ya.ru
Чт Дек 15 03:20:14 PST 2011


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