[Omaha.pm] DBH statement isn't closing

Jay Hannah jay at jays.net
Wed Sep 20 06:22:30 PDT 2006


On Sep 19, 2006, at 2:52 PM, Mike Hostetler wrote:
> I'm mucking around with DBI stuff for the first time.

Welcome to the fray! -laugh-

> I thought I did everything right, but I guess I didn't.
>
> Here is my code:
> ===============
> #!/usr/bin/perl -w
>
> use DBI;

Huh. I'm surprised DBD::SQLite docs say to 'use DBI;'. I would have  
thought they would say to 'use SQLite;'. Oh well, no matter.

> my $cacheDB = DBI->connect("dbi:SQLite:waypoint.db","","") or die  
> "Couldn't fin\
> d cache database";
>
> my $stmt = $cacheDB->prepare("Select lat,lon from waypoint where  
> name=?");
>
> $stmt->execute( ("Home") );
> my ($lat,$lon);
>
> $stmt->bind_columns(undef,\$lat,\$lon);

What does that undef do? Try removing that.

> while ($stmt->fetch() ) {
>   print "$lat\t$lon\n";
> }
>
> $stmt->finish();
> $cacheDB->disconnect();
> ==========
>
> I get the correct output, but I also get this warning:
>
> closing dbh with active statement handles at dberror.pl line 19.
>
> I thought I did close it with the finish method.  Maybe I didn't.

I agree with you. Maybe that undef is doing something weird?

Many, many, many DBI gurus hang out here:
http://lists.cpan.org/showlist.cgi?name=dbi-users

They might know.

Are your versions of DBD::SQLite and DBI current?

    perl -MDBI -e 'DBI->installed_versions'

j



More information about the Omaha-pm mailing list