Hello Andrew, > Is there a way to find out how many records were returned > with a DBI query? There's the > obvious counting each record as you fetch it, but I need the > count before I start going > through them.
I was looking through the DBI documentation (perldoc DBI) not long ago and this caught my eye... It's in the "Statement Handle Methods" section. Just proof that sometimes the info is there, but it's hard to find or buried in a very big man page (which certainly is the case for the DBI man page...). <-------------------- snip --------------------> 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. Generally, you can only rely on a row count after a non-SELECT execute (for some specific operations like UPDATE and DELETE), or after fetching all the rows of a SELECT statement. 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. One alternative method to get a row count for a SELECT is to execute a ``SELECT COUNT(*) FROM ...'' SQL statement with the same ``...'' as your query and then fetch the row count from that. <-------------------- snip --------------------> So that should answer your question. In short, no it isn't possible unless you use a "SELECT COUNT(*) FROM ..." query before issuing your query itself. Hope this helps, J-S -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] <http://learn.perl.org/> <http://learn.perl.org/first-response>