disconnect from database before next connect, support unknown types
authorDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 3 Nov 2008 18:44:42 +0000 (18:44 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Mon, 3 Nov 2008 18:44:42 +0000 (18:44 +0000)
git-svn-id: svn://svn.rot13.org/SQL2XLS@6 2e857b76-582b-47e5-ad5c-b3ba0f0ee29b

sql2xls.cgi

index fb1aa65..c9b6dd9 100755 (executable)
@@ -83,7 +83,7 @@ foreach my $sql_file (@sql_files) {
        # Add a worksheet
        my $worksheet = $workbook->addworksheet($sheet_name);
 
-       print STDERR "working on $sql_file...\n" if ($debug);
+       print STDERR "working on $sql_file\n" if ($debug);
 
        open(SQL,$sql_file) || die "can't open sql file '$sql_file': $!";
        my $comment;
@@ -91,7 +91,8 @@ foreach my $sql_file (@sql_files) {
        while(<SQL>) {
                chomp;
                if (/^\\c\s+(\S+)/) {
-                       warn "## connect to $1\n" if $debug;
+                       $dbh->disconnect if $dbh;
+                       print STDERR "## connect to $1\n" if $debug;
                        $dbh = DBI->connect($dsn . $1,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
                } elsif (/^--(.+)/) {
                        $comment.=$1;
@@ -128,7 +129,7 @@ foreach my $sql_file (@sql_files) {
        }
        $row++;
 
-       my @types = map { scalar $dbh->type_info($_)->{TYPE_NAME} } @{ $sth->{TYPE} };
+       my @types = map { $dbh->type_info($_) ? $dbh->type_info($_)->{TYPE_NAME} : '?' } @{ $sth->{TYPE} };
 
        while (my @row = $sth->fetchrow_array() ) {
                for(my $col=0; $col<=$#row; $col++) {