++ed by:
RPAVLOV JGAMBLE

2 PAUSE users
1 non-PAUSE user.

Christian Jaeger
and 1 contributors

NAME

FP::DBI - DBI with results as lazy lists

SYNOPSIS

 use FP::DBI;

 $dbh = FP::DBI->connect($data_source, $username, $auth, \%attr);

 # same as `DBI`:
 ..
 $sth = $dbh->prepare($statement);
 ..
 $rv = $sth->execute;

 # then:
 my $s= $sth->row_stream;    # purearrays blessed to FP::DBI::Row
 # or
 #my $s= $sth->array_stream; # arrays
 # or
 #my $s= $sth->hash_stream;  # hashes

 use PXML::XHTML;
 TABLE
   (TH($s->first->map (*TD)),
    $s->rest->take (10)->map (sub {TR($_[0]->map (*TD))}))

DESCRIPTION

Get rows as items in a lazy linked list (functional stream).

NOTE: `DBI` is designed so that when running another `execute` on the same statement handle, fetching returns rows for the new execute; this means, a new execute makes it impossible to retrieve further results from the previous one. Thus if a result stream isn't fully used before a new `execute` or a different result request is being made, then the original stream can't be further evaluated anymore; to prevent this from happening, an interlock mechanism is built in that throws an error in this case.

SEE ALSO

DBI, FP::Stream