Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re^3: dbi_query_iterator and my misunderstanding the $row

by japhy (Canon)
on Mar 02, 2007 at 13:43 UTC ( #602878=note: print w/ replies, xml ) Need Help??


in reply to Re^2: dbi_query_iterator and my misunderstanding the $row
in thread dbi_query_iterator and my misunderstanding the $row

Oh, sorry. Maybe I misunderstood. Does the code actually work, and you want to know why it works?

$oldrow is the previous row. The function that builds the iterator stores the first row before it creates the iterator function:

sub dbi_query_iterator { my ($sth, @params) = @_; $sth->execute(@params) or return; # get the first row of results NOW my $row = $sth->fetchrow_arrayref(); return Iterator { my $action = shift() || 'nextval'; if ($action eq 'exhausted?') { return ! defined $row; } elsif ($action eq 'nextval') { # save the current row of results my $oldrow = $row; # get the next row of results $row = $sth->fetchrow_arrayref; # return the previous row (before we advanced) return $oldrow->[0]; } } }

Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart


Comment on Re^3: dbi_query_iterator and my misunderstanding the $row
Download Code
Replies are listed 'Best First'.
Re^4: dbi_query_iterator and my misunderstanding the $row
by jfroebe (Parson) on Mar 02, 2007 at 15:41 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://602878]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (6)
As of 2015-07-29 01:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (260 votes), past polls