/[SQL2XLS]/sql2xlsx.cgi
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /sql2xlsx.cgi

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sql2xls.cgi revision 22 by dpavlin, Thu Nov 6 10:37:17 2008 UTC sql2xlsx.cgi revision 26 by dpavlin, Tue Dec 28 13:35:57 2010 UTC
# Line 99  $sql_dir .= "/$reports_path" if -e "$sql Line 99  $sql_dir .= "/$reports_path" if -e "$sql
99    
100  require_config;  require_config;
101    
102  warn "# reading SQL queries from $sql_dir\n" if $debug;  warn "SQL queries from $sql_dir\n";
103    
104  opendir(DIR, $sql_dir) || die "can't opendir $sql_dir: $!";  opendir(DIR, $sql_dir) || die "can't opendir $sql_dir: $!";
105  my @sql_files = sort grep { /\.sql$/i && -f "$sql_dir/$_" } readdir(DIR);  my @sql_files = sort grep { /\.sql$/i && -f "$sql_dir/$_" } readdir(DIR);
# Line 124  sub use_database { Line 124  sub use_database {
124          my $database = shift || return;          my $database = shift || return;
125          print STDERR "## connect to $database\n" if $debug;          print STDERR "## connect to $database\n" if $debug;
126          $dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;          $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};          if ( $db_encoding ) {
128                    if ( $dsn =~ m{Pg} ) {
129                            $dbh->do( qq{ set client_encoding = '$db_encoding'; } );
130                    } elsif ( $dsn =~ m{mysql} ) {
131                            $dbh->do( qq{ set names '$db_encoding'; } );
132                    } else {
133                            warn "Don't know how to set encoding to $db_encoding for $dsn";
134                    }
135            }
136  }  }
137    
138  use_database( $database );  use_database( $database );
# Line 187  foreach my $sql_file (@sql_files) { Line 195  foreach my $sql_file (@sql_files) {
195    
196          foreach my $sql ( split(/;/, $full_sql ) ) {          foreach my $sql ( split(/;/, $full_sql ) ) {
197    
198                  warn "SQL: $sql\n" if $debug;                  warn "SQL: $sql\n";
199    
200                  my $sth = $dbh->prepare($sql);                  my $sth = $dbh->prepare($sql);
201                  $sth->execute();                  $sth->execute();
202    
203                  next unless $sth->{NAME}; # $sth->rows doesn't work for insert into with MySQL                  next unless $sth->{NAME} && $sth->rows > 0; # $sth->rows alone doesn't work for insert into with MySQL
204    
205                  my @types = eval {                  my @types = eval {
206                          map { $dbh->type_info($_) ? $dbh->type_info($_)->{TYPE_NAME} : '?' } @{ $sth->{TYPE} };                          map { $dbh->type_info($_) ? $dbh->type_info($_)->{TYPE_NAME} : '?' } @{ $sth->{TYPE} };

Legend:
Removed from v.22  
changed lines
  Added in v.26

  ViewVC Help
Powered by ViewVC 1.1.26