118 |
|
|
119 |
my $date_format = $workbook->add_format(num_format => $xls_date_format); |
my $date_format = $workbook->add_format(num_format => $xls_date_format); |
120 |
|
|
121 |
my $dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr; |
our $dbh; |
122 |
|
sub use_database { |
123 |
|
$dbh->disconnect if $dbh; |
124 |
|
my $database = shift || return; |
125 |
|
print STDERR "## connect to $database\n" if $debug; |
126 |
|
$dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr; |
127 |
|
$dbh->do( qq{ set names '$db_encoding'; } ) if $db_encoding && $dsn =~ m{mysql}; |
128 |
|
} |
129 |
|
|
130 |
|
use_database( $database ); |
131 |
|
|
132 |
sub _c { |
sub _c { |
133 |
return shift unless $db_encoding; |
return shift unless $db_encoding; |
153 |
while(<SQL>) { |
while(<SQL>) { |
154 |
chomp; |
chomp; |
155 |
if (/^\\c\s+(\S+)/) { |
if (/^\\c\s+(\S+)/) { |
156 |
$dbh->disconnect if $dbh; |
use_database( $1 ); |
|
print STDERR "## connect to $1\n" if $debug; |
|
|
$dbh = DBI->connect($dsn . $1,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr; |
|
157 |
} elsif (/^--(.+)/) { |
} elsif (/^--(.+)/) { |
158 |
$comment.=$1; |
$comment.=$1; |
159 |
} else { |
} else { |