Uhh... You want the number of rows you SELECTed? Typically I use fetchrow() to walk each row in a cursor-style walk. Like so:
$rowcount = 0; while (@row = $sth->fetchrow) { $rowcount++; # ... do whatever ... }In that mode, you don't know $rowcount until you've walked all the data doing your real work.
Or just change your SQL statement to "select count(*) from..." if you have no real work to do?
Or slurp the entire results set into Perl memory up front...? my @rowsref = $sth->fetchall_arrayref; my $rowcount = @rowsref; foreach (@rowsref) { my $rowref = $_; # ... do whatever ... } ? HTH, j On Nov 18, 2004, at 7:59 AM, Michael D. Maynard wrote:
That would work with INSERT. Any thoughts on SELECT queries? The select @@ROWCOUNT essentially returns a second record set AFTER all the rows have been fetched.Michael At 08:42 PM 11/17/2004, you wrote:On Nov 17, 2004, at 5:03 PM, Michael D. Maynard wrote:Do you know how to get @@ROWCOUNT from MSSQL for a query with PERL? DBI rows() is not supported. :-(Hmmm... here's an example of @@identity. I assume @@rowcount would work the same way?my $strsql = "insert into blah...."; $strsql .= ' select @@identity'; # print "\n\n$strsql\n\n"; my $sth = $dbh->prepare($strsql); $sth->execute; my @row = $sth->fetchrow_array; $sth->finish; print "Just inserted new ID '$row[0]'\n"; HTH, j