Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re: DBD::SQLite dilemma

by mpeppler (Vicar)
on Aug 11, 2003 at 12:36 UTC ( #282835=note: print w/replies, xml ) Need Help??


in reply to DBD::SQLite dilemma

I'd go with your third option, because it doesn't preclude you from providing the correct answer.

The current version of DBD::Sybase returns -1 for

$rowcount = $dbh->do("select * from TABLE");
but I jusr verified that a (very) simple change will let it return the correct number of rows.

DBD::Sybase uses it's own implementation of do() to handle multiple result sets, but if DBD::SQLite correctly handles the rows() then you could do something like this:

sub do { my($dbh, $statement, $attr, @params) = @_; my $sth = $dbh->prepare($statement, $attr) or return undef; $sth->execute(@params) or return undef; return undef if $sth->err; while(my $dat = $sth->fetch) { return undef if $sth->err; } my $rows = $sth->rows; ($rows == 0) ? "0E0" : $rows; }
Also note the comments by others in this thread that DBI doesn't guarantee that the rowcount is available for SELECT operations, so IMHO you're off the hook :-)

Michael

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://282835]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (2)
As of 2020-11-30 03:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?