DBIx-Connection
view release on metacpan or search on metacpan
lib/DBIx/Connection.pm view on Meta::CPAN
=item print_usage_report
Prints usage report to stander output.
=cut
sub print_usage_report {
my ($self, $fh) = @_;
print $fh $self->format_usage_report;
}
=item print_usage_report_to_file
Prints usage report to file
=cut
sub print_usage_report_to_file {
my ($self) = @_;
my $dir = $self->statistics_dir;
if($self->collect_statistics && -d $dir) {
my $file = $dir . $self->name . "." . $$;
open my $fh, '>>', $file
or die "cant open file $file";
$self->print_usage_report;
::close($fh);
}
}
=item error_handler
Returns error message, takes error message, and optionally bind variables.
If bind variables are passed in the sql's place holders are replaced with the bind_variables.
=cut
sub error_handler {
my ($self, $sql, $sql_handler) = @_;
my $dbh = $self->dbh;
my $message = "[" . $self->name ."]: " . $sql . '\': ' .($dbh ? $dbh->errstr : '');
if ($self->custom_error_handler) {
$self->custom_error_handler->($self, $message, $sql_handler);
} else {
confess $message;
}
}
=item update_lob
Updates lob.
Takes table_name, lob column name, lob content, hash_ref to primary key values. optionally lob size column name.
$connection->update_lob(lob_test => 'blob_content', $lob_content, {id => 1}, 'doc_size');
=cut
sub update_lob {
my ($self, $table_name, $lob_column_name, $lob, $primary_key_values, $lob_size_column_name) = @_;
my $module_name = $self->load_module('SQL');
if($module_name && $module_name->can('update_lob')) {
$module_name->update_lob($self, $table_name, $lob_column_name, $lob, $primary_key_values, $lob_size_column_name);
} else {
warn "not implemented ${module_name}::update_lob";
}
}
=item fetch_lob
Returns lob, takes table name, lob column name, hash ref of primary key values, lob size column name
my $lob = $connection->fetch_lob(lob_test => 'blob_content', {id => 1}, 'doc_size');
=cut
sub fetch_lob {
my ($self, $table_name, $lob_column_name, $primary_key_values, $lob_size_column_name) = @_;
my $result;
my $module_name = $self->load_module('SQL');
if($module_name && $module_name->can('fetch_lob')) {
$result = $module_name->fetch_lob($self, $table_name, $lob_column_name, $primary_key_values, $lob_size_column_name);
} else {
warn "not implemented ${module_name}::fetch_lob";
}
$result;
}
=item _where_clause
Returns Where caluse sql fragment, takes hash ref of fields values.
=cut
sub _where_clause {
my ($self, $field_values) = @_;
" WHERE " . join(" AND ", map {( $_ . ' = ? ')} sort keys %$field_values);
}
=item DESTORY
=cut
sub DESTORY {
my ($self) = @_;
$self->print_usage_report_to_file;
}
1;
__END__
=back
=head1 COPYRIGHT AND LICENSE
( run in 1.422 second using v1.01-cache-2.11-cpan-e1769b4cff6 )