in reply to DBD::SQLite dilemma
The current version of DBD::Sybase returns -1 for
but I jusr verified that a (very) simple change will let it return the correct number of rows.$rowcount = $dbh->do("select * from TABLE");
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:
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 :-)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; }
Michael
|
|---|