support $db_encoding for Pg and mysql DBI drivers
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 6 Nov 2008 10:49:02 +0000 (10:49 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 6 Nov 2008 10:49:02 +0000 (10:49 +0000)
git-svn-id: svn://svn.rot13.org/SQL2XLS@23 2e857b76-582b-47e5-ad5c-b3ba0f0ee29b

sql2xls.cgi

index 00e484f..5f23394 100755 (executable)
@@ -124,7 +124,15 @@ sub use_database {
        my $database = shift || return;
        print STDERR "## connect to $database\n" if $debug;
        $dbh = DBI->connect($dsn . $database,$user,$passwd, { RaiseError => 1, AutoCommit => 0 }) || die $DBI::errstr;
-       $dbh->do( qq{ set names '$db_encoding'; } ) if $db_encoding && $dsn =~ m{mysql};
+       if ( $db_encoding ) {
+               if ( $dsn =~ m{Pg} ) {
+                       $dbh->do( qq{ set client_encoding = '$db_encoding'; } );
+               } elsif ( $dsn =~ m{mysql} ) {
+                       $dbh->do( qq{ set names '$db_encoding'; } );
+               } else {
+                       warn "Don't know how to set encoding to $db_encoding for $dsn";
+               }
+       }
 }
 
 use_database( $database );