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
NOTE
This is alpha software! Read the package README.