Diff for /db/prgsrc/updatedb.pl between versions 1.35 and 1.36

version 1.35, 2003/02/24 13:59:27 version 1.36, 2003/04/14 20:06:59
Line 61  use DBI; Line 61  use DBI;
 use strict;  use strict;
 my $isunsorted=0;  my $isunsorted=0;
 sub UpdateParents {  sub UpdateParents {
     my ($dbh, $ParentId, $all_qnum) = @_;      my ($dbh, $ParentId, $all_qnum,$CreatedAt) = @_;
     if ($ParentId) {      if ($ParentId) {
         my ($sth1) = $dbh->prepare("SELECT QuestionsNum, ParentId           my ($sth1) = $dbh->prepare("SELECT QuestionsNum, ParentId, CreatedAt
 FROM Tournaments WHERE Id = $ParentId");  FROM Tournaments WHERE Id = $ParentId");
         $sth1->execute;          $sth1->execute;
         my ($q, $p) = ($sth1->fetchrow)[0, 1];          my ($q, $p,$c) = ($sth1->fetchrow)[0, 1, 2];
           $c=$CreatedAt if $CreatedAt && ($CreatedAt gt $c);
           my $qc=$dbh->quote($c);
         $dbh->do("UPDATE Tournaments SET           $dbh->do("UPDATE Tournaments SET 
                   QuestionsNum=$q + $all_qnum                     QuestionsNum=$q + $all_qnum, CreatedAt=$qc
                   WHERE Id = $ParentId");                    WHERE Id = $ParentId");
         &UpdateParents($dbh, $p, $all_qnum);          &UpdateParents($dbh, $p, $all_qnum,$c);
     }      }
 }  }
   
   
 sub getField {  sub getField {
     my($desc, $dbh) = @_;      my($desc, $dbh) = @_;
     my($key);      my($key);
Line 286  MAIN: Line 289  MAIN:
         my($tournum, $qnum, $all_qnum) = (0, 0, 0);          my($tournum, $qnum, $all_qnum) = (0, 0, 0);
         my (@d) = (localtime((stat($source))[9]))[5,4,3];          my (@d) = (localtime((stat($source))[9]))[5,4,3];
         $d[1]++;          $d[1]++;
           $d[1]=sprintf("%02d",$d[1]);
           $d[2]=sprintf("%02d",$d[2]);
         $d[0]+=1900;          $d[0]+=1900;
         my ($CreatedAt) = $dbh->quote( join('-', @d));          my $UnquotedCreated=join('-', @d);
           my ($CreatedAt) = $dbh->quote($UnquotedCreated);
   
         open INFD, $source           open INFD, $source 
             or die "Can't open input file: $!\n";              or die "Can't open input file: $!\n";
                   
         $source =~ s/^.*\/([^\/]*)$/$1/;          $source =~ s/^.*\/([^\/]*)$/$1/;
           my $unquotedsource=$source;
           $unquotedsource=~s/\.txt\s*$//;
         $source = $dbh->quote($source);          $source = $dbh->quote($source);
         print STDERR "Файл: $source, дата: $CreatedAt ";          print STDERR "Файл: $source, дата: $CreatedAt ";
         my %TourDefaults=('CreatedAt'=>$CreatedAt);          my %TourDefaults=('CreatedAt'=>$CreatedAt);
Line 321  MAIN: Line 329  MAIN:
             }              }
             if ($key =~ /Тур/) {              if ($key =~ /Тур/) {
                 if ($TourId) {                  if ($TourId) {
                     $dbh->do("UPDATE Tournaments SET QuestionsNum=$qnum  
                           $dbh->do("UPDATE Tournaments SET QuestionsNum=$qnum
                               WHERE Id=$TourId");                                WHERE Id=$TourId");
                 }                  }
                 $qnum = 0;                  $qnum = 0;
                 $TourNum++;                  $TourNum++;
                   $TourDefaults{'FileName'}=$dbh->quote(
                                                   "$unquotedsource.$TourNum"
                                                   );
                 $TourId=CreateTour($dbh,$value,$TournamentId,$TourNum,                  $TourId=CreateTour($dbh,$value,$TournamentId,$TourNum,
                                    \%TourDefaults);                                     \%TourDefaults);
                 %QuestionDefaults=%QuestionGlobalDefaults;                  %QuestionDefaults=%QuestionGlobalDefaults;
Line 408  MAIN: Line 420  MAIN:
                         WHERE Id=$TourId");                          WHERE Id=$TourId");
         $dbh->do("UPDATE Tournaments SET QuestionsNum=$all_qnum          $dbh->do("UPDATE Tournaments SET QuestionsNum=$all_qnum
                         WHERE Id=$TournamentId");                          WHERE Id=$TournamentId");
         &UpdateParents($dbh, $ParentId, $all_qnum);                       &UpdateParents($dbh, $ParentId, $all_qnum,$UnquotedCreated);            
         print STDERR "Всего вопросов: $all_qnum \n";          print STDERR "Всего вопросов: $all_qnum \n";
     }      }
     close UNSORTED;      close UNSORTED;

Removed from v.1.35  
changed lines
  Added in v.1.36


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>