2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-21 01:46:08 +00:00

93_DbRep: V5.2.1, bugfix in sqlCmd to support PRAGMA, UTF8

git-svn-id: https://svn.fhem.de/fhem/trunk@14564 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
nasseeder1 2017-06-25 07:42:15 +00:00
parent c26083e225
commit 4e6c566a47
2 changed files with 9 additions and 6 deletions

View File

@ -1,5 +1,6 @@
# Add changes at the top of the list. Keep it in ASCII, and 80-char wide.
# Do not insert empty lines here, update check depends on it.
- bugfix: 93_DbRep: V5.2.1, bugfix in sqlCmd to support PRAGMA, UTF8
- feature: 93_DbLog: V2.17.1, optional UTF-8 support for MySQL database
(additional parameter in db.conf neccesary for activation)
- feature: YAMAHA_AVR: new set commands / readings to control HDMI outputs

View File

@ -41,6 +41,7 @@
###########################################################################################################################
# Versions History:
#
# 5.2.1 25.06.2017 bugfix in sqlCmd_DoParse (PRAGMA, UTF8)
# 5.2.0 14.06.2017 UTF-8 support for MySQL (fetchrows, srvinfo, expfile, impfile, insert)
# 5.1.0 13.06.2017 column "UNIT" added to fetchrow result
# 5.0.6 13.06.2017 add Aria engine to optimise_tables
@ -225,7 +226,7 @@ use Encode qw(encode_utf8);
sub DbRep_Main($$;$);
my $DbRepVersion = "5.2.0";
my $DbRepVersion = "5.2.1";
my %dbrep_col = ("DEVICE" => 64,
"TYPE" => 64,
@ -3520,6 +3521,7 @@ sub sqlCmd_DoParse($) {
my $dbuser = $dbloghash->{dbuser};
my $dblogname = $dbloghash->{NAME};
my $dbpassword = $attr{"sec$dblogname"}{secret};
my $utf8 = defined($hash->{UTF8})?$hash->{UTF8}:0;
my $err;
# Background-Startzeit
@ -3528,7 +3530,7 @@ sub sqlCmd_DoParse($) {
Log3 ($name, 4, "DbRep $name -> Start BlockingCall sqlCmd_DoParse");
my $dbh;
eval {$dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 1, AutoInactiveDestroy => 1 });};
eval {$dbh = DBI->connect("dbi:$dbconn", $dbuser, $dbpassword, { PrintError => 0, RaiseError => 1, AutoInactiveDestroy => 1, mysql_enable_utf8 => $utf8 });};
if ($@) {
$err = encode_base64($@,"");
@ -3552,10 +3554,10 @@ sub sqlCmd_DoParse($) {
# SQL-Startzeit
my $st = [gettimeofday];
my $sth;
my ($sth,$r);
eval {$sth = $dbh->prepare($sql);
$sth->execute();
$r = $sth->execute();
};
if ($@) {
@ -3569,7 +3571,7 @@ sub sqlCmd_DoParse($) {
my @rows;
my $nrows = 0;
if($sql =~ m/^\s*select/is) {
if($sql =~ m/^\s*(select|pragma)/is) {
while (my @line = $sth->fetchrow_array()) {
Log3 ($name, 4, "DbRep $name - SQL result: @line");
my $row = join("|", @line);
@ -3592,7 +3594,7 @@ sub sqlCmd_DoParse($) {
return "$name|''|$opt|$sql|''|''|$err";
}
push(@rows, " ");
push(@rows, $r);
my $com = (split(" ",$sql, 2))[0];
Log3 ($name, 3, "DbRep $name - Number of entries processed in db $hash->{DATABASE}: $nrows by $com");
}