DBD-RAM

 view release on metacpan or  search on metacpan

RAM.pm  view on Meta::CPAN

    my $next=0;
    for my $table(@tables) {
        if ($table =~ /^table(\d+)/ ) {
            $next = $1 if $1 > $next;
        }
    }
    $next++;
    return("table$next");
}

sub export() {
    my $dbh    = shift;
    my $args   = shift || die "No arguments for export()\n";
    my $msg = "export() requires ";
    my $sql    = $args->{data_source} || die $msg . '{data_source => $}';
    my $f_name = $args->{data_target} || die 'export requires {data_target => $f}';
    my $f_type = $args->{data_type} || die 'export requires {data_type => $d}';
    if ($f_type eq 'XML') { return &export_xml($dbh,$args); }
    my $temp_table = 'temp__';
    $dbh->func( [[$temp_table,$f_type,$f_name,$args]],'catalog');
    my $sth1 = $dbh->prepare($sql);
    $sth1->execute or die $DBI::errstr;
    my @col_names = @{$sth1->{NAME}};
    my $sth2 = &prep_insert( $dbh, $temp_table, @col_names );
    while (my @row = $sth1->fetchrow_array) {
        $sth2->execute(@row);
    }
    delete $DBD::RAM::ramdata->{catalog}{$temp_table};
}

sub export_xml() {
    my $dbh    = shift;
    my $args   = shift;
    my $msg = "Export to XML requires ";
    my $sql    = $args->{data_source}       || die $msg . '{data_source => $}';
    my $f_name = $args->{data_target} || die $msg . '{data_target => $f}';
    my $f_type = $args->{data_type} || die $msg . '{data_type => $d}';
    my $record_tag = $args->{record_tag} || die $msg . '{record_tag => $r}';
    my $header = $args->{header} || '';
    my($head,$item,$foot) = &prep_xml_export($header,$record_tag);
    $f_name = $dbh->{f_dir} . '/' .$f_name;

RAM.pm  view on Meta::CPAN

    my $terminal_tag = pop @tag_starts;
    my @tag_ends   = map("</$_>\n",reverse @tag_starts);
    @tag_starts = map("<$_>\n",@tag_starts);
    for (@tag_starts) { $header .= $_; }
    #print "   <$terminal_tag>\n";
    my $footer;
    for (@tag_ends) { $footer .= $_; }
    return($header,$terminal_tag,$footer);
}

sub convert() {
    my $dbh   = shift;
    my $specs = shift;
    my $source_type   = $specs->{source_type}   || '';
    my $source_file   = $specs->{source_file}   || '';
    my $source_params = $specs->{source_params} || '';
    my $target_type   = $specs->{target_type}   || '';
    my $target_file   = $specs->{target_file}   || '';
    my $temp_table    = 'temp__';
    my($dbh2,$sth1);
    $dbh->func( [

RAM.pm  view on Meta::CPAN

    $sth1->execute;
    my @col_names = @{$sth1->{NAME}};
    my $sth2 = &prep_insert( $dbh, "${temp_table}2", @col_names );
    while (my @row = $sth1->fetchrow_array) {
        $sth2->execute(@row);
    }
    if ($source_type eq 'DBI' ) { $dbh2->disconnect; }
}


sub import() {
    my $dbh   = shift;
    my $specs = shift;
    my $data  = shift;
    if ($specs && ! $data ) {
        if (ref $specs eq 'ARRAY' ) {
            $data = $specs; $specs = {};
        }
        else {
	    $data = [];
	}



( run in 0.737 second using v1.01-cache-2.11-cpan-65fba6d93b7 )