Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ad2e3220

Von Sven Schöling vor mehr als 14 Jahren hinzugefügt

  • ID ad2e3220c7da79f7849f6931ed6cdb6e3f497feb
  • Vorgänger 18c88aa1
  • Nachfolger 5052b6f9

CVar validity ausgelagert in eine Massenfunktion.

Reduziert die Anzahl der Datenbankzugriffe bei großen Belegen massiv.

Unterschiede anzeigen:

SL/CVar.pm
669 669
  return !$invalid;
670 670
}
671 671

  
672
sub custom_variables_validity_by_trans_id {
673
  $main::lxdebug->enter_sub(2);
674

  
675
  my $self     = shift;
676
  my %params   = @_;
677

  
678
  return sub { 0 } unless $params{trans_id};
679

  
680
  my $myconfig = \%main::myconfig;
681
  my $form     = $main::form;
682

  
683
  my $dbh      = $params{dbh} || $form->get_standard_dbh($myconfig);
684

  
685
  my $query    = qq|SELECT config_id, COUNT(*) FROM custom_variables_validity WHERE trans_id = ? GROUP BY config_id|;
686

  
687
  my %invalids = selectall_as_map($form, $dbh, $query, 'config_id', 'count', $params{trans_id});
688

  
689
  $main::lxdebug->leave_sub(2);
690

  
691
  return sub { !$invalids{+shift} };
692
}
693

  
672 694
1;
673 695

  
674 696
__END__

Auch abrufbar als: Unified diff