In following db functions I am using returned "statement handle "
and afterword just ignoring it and overwrite it with the newly
returned value.

Does this cause memory leak/ or any kind of resouce leak?
Can I reuse statement handle in such a way? If not, what is
cleaner way to do it?

-------------------------
sub getTotalDBTags (){
    my $rTableListRef;
    my $query;
    my $sth;
    my $count=0;
    my $rRowCount=0;

    db_init();
    $query = "select TableName from hourly_tables";
    $sth = perform_query($query);
    $rTableListRef = $sth->fetchall_arrayref;

    $query="";
    foreach $table (@$rTableListRef) {
        $query = "select count(*) from $table";
        $sth = perform_query($query);
        $rRowCount = $sth->fetchall_arrayref;
        $count = $count + $rRowCount->[0][0];
        print "count = $count\n";
    }

    $db{handle}->disconnect();
    return $count;
}

sub perform_query($$) {
    my ($query) = @_;
    my $sth = $db{handle}->prepare($query);
    unless ($sth) {
        ERROR ("Failed to prepare sql query: $query\n");
        return undef;
    }

    unless ($sth->execute()) {
        ERROR ("Failed to execute sql query: $query\n)";
        return undef;
    }
    return $sth;
}
sub db_init () {
    my $query = "";
    if ($db{handle} = DBI->connect($db{name}, $db{user}, $db{pass}))
    {
        return(1);
    }
    else
    {
        ERROR ("Unable to connect to database $db{name}\n");
        return(0);
    }
}

-----------------
Thanks,
Manish

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to