I'm always cautious of slurping (files or result sets) like that. 
Depending on the size of your result set, that can wind up being a huge 
array, which of course is then held in memory until it's discarded, or 
until the program ends.  If it's only a few thousand rows, go for it, but 
if it's a few hundred thousand, I'd rethink it.

Also, if you are going to slurp the whole thing into an array, consider 
$sth->fetchall_arrayref() as it allows more flexibility such as doing your 
execute with bind parameters. 

____________________________
Jeff Seger
Fairchild Semiconductor
[EMAIL PROTECTED]
____________________________




Tom Mornini <[EMAIL PROTECTED]>
02/25/2005 12:28 PM

 
        To:     Perl - DBI users <dbi-users@perl.org>
        cc: 
        Subject:        Re: how to fetch all records


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


On Feb 25, 2005, at 9:22 AM, Tiffany Thang wrote:

> Is there another way of fetching all table records in one statement
> without going through a loop?
>
> What I have now is as follows:
> while (@eachrec=$sth->fetchrow_array) {
>         do whatever;
> }
>
> I want to retrieve all the records into an array first and process it
> later on. What would be the best way of doing it?

from perldoc DBI...

          $ary_ref  = $dbh->selectall_arrayref($statement);

Looks like selectall_arrayref is your cup of tea.

- -- 
- -- Tom Mornini

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (Darwin)

iD8DBQFCH2BYzaKkuvKwKvcRApIcAKCBpOPUl6erXlmwnB5irQ9lK3eTbgCfafSw
D62q6T95L+/udISb63eJo8s=
=bOUZ
-----END PGP SIGNATURE-----






Reply via email to