in reply to Execute stored procedure with freetd

Some information on DBI and Stored Procedures
might help...
Update
Quote from the DBI docs regarding $sth->rows();
$rv = $sth->rows;
Returns the number of rows affected by the last row affecting command, or -1 if the number of rows is not known or not available.
...(clipped info)...
For SELECT statements, it is generally not possible to know how many rows will be returned except by fetching them all. Some drivers will return the number of rows the application has fetched so far, but others may return -1 until all rows have been fetched. So use of the rows method or $DBI::rows with SELECT statements is not recommended.
-injunjoel