{
package DBD::NullP;
require DBI;
require Carp;
@EXPORT = qw(); $VERSION = sprintf("%d.%02d", q$Revision: 11.4 $ =~ /(\d+)\.(\d+)/o);
$drh = undef;
sub driver{
return $drh if $drh;
my($class, $attr) = @_;
$class .= "::dr";
($drh) = DBI::_new_drh($class, {
'Name' => 'NullP',
'Version' => $VERSION,
'Attribution' => 'DBD Example Null Perl stub by Tim Bunce',
}, [ qw'example implementors private data']);
$drh;
}
sub CLONE {
undef $drh;
}
}
{ package DBD::NullP::dr; $imp_data_size = 0;
use strict;
sub DESTROY { undef }
}
{ package DBD::NullP::db; $imp_data_size = 0;
use strict;
use Carp qw(croak);
sub prepare {
my($dbh, $statement)= @_;
my($outer, $sth) = DBI::_new_sth($dbh, {
'Statement' => $statement,
}, [ qw'example implementors private data']);
$outer;
}
sub FETCH {
my ($dbh, $attrib) = @_;
return 1 if $attrib eq 'AutoCommit';
return $dbh->SUPER::FETCH($attrib);
}
sub STORE {
my ($dbh, $attrib, $value) = @_;
if ($attrib eq 'AutoCommit') {
return 1 if $value; Carp::croak("Can't disable AutoCommit");
}
return $dbh->SUPER::STORE($attrib, $value);
}
sub disconnect {
shift->STORE(Active => 0);
}
}
{ package DBD::NullP::st; $imp_data_size = 0;
use strict;
sub execute {
my($sth, $data) = @_;
$sth->{dbd_nullp_data} = $data if $data;
$sth->{NAME} = [ "fieldname" ];
1;
}
sub fetch {
my($sth) = @_;
my $data = $sth->{dbd_nullp_data};
if ($data) {
$sth->{dbd_nullp_data} = undef;
return [ $data ];
}
$sth->finish; return undef;
}
sub FETCH {
my ($sth, $attrib) = @_;
return $sth->SUPER::FETCH($attrib);
}
sub STORE {
my ($sth, $attrib, $value) = @_;
return $sth->SUPER::STORE($attrib, $value);
}
}
1;