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 status section in the package README or on the website.