X-Git-Url: http://wagnertech.de/gitweb/gitweb.cgi/mfinanz.git/blobdiff_plain/df9b211eecc3fdcc8ca143fcdff4d0a002e150e3..27eb5ad286bd1ef5ce536659a456ad8b8b96c16b:/SL/User.pm diff --git a/SL/User.pm b/SL/User.pm index f989e86f5..c35ff0e91 100644 --- a/SL/User.pm +++ b/SL/User.pm @@ -162,7 +162,7 @@ sub login { $rc = 0; - if ($form->{dbversion} ne $dbversion) { + if (&update_available($dbversion)) { # update the tables open FH, ">$userspath/nologin" or die " @@ -432,9 +432,11 @@ sub process_query { $sth = $dbh->prepare($query); if (!$sth->execute()) { + my $errstr = $dbh->errstr; $sth->finish(); $dbh->rollback(); $form->dberror("The database update/creation did not succeed. The file ${filename} containing the following query failed:
${query}
" . + "The error message was: ${errstr}
" . "All changes in that file have been reverted."); } $sth->finish(); @@ -652,6 +654,16 @@ sub cmp_script_version { } ## /LINET +sub update_available { + ($cur_version) = @_; + opendir SQLDIR, "sql/." or &error("", "$!"); + my @upgradescripts = + grep(/$form->{dbdriver}-upgrade-$cur_version.*\.sql/, readdir(SQLDIR)); + closedir SQLDIR; + + return ($#upgradescripts > -1); +} + sub dbupdate { $main::lxdebug->enter_sub();