Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision f82e94c7

Von Sven Schöling vor etwa 8 Jahren hinzugefügt

  • ID f82e94c7cbbea66d902e286c531d2282fc69f67c
  • Vorgänger f2cbb7d7
  • Nachfolger cafc615b

PE: single-dbh disconnects

Unterschiede anzeigen:

SL/PE.pm
37 37
use Data::Dumper;
38 38

  
39 39
use SL::DBUtils;
40
use SL::DB;
40 41

  
41 42
use strict;
42 43

  
......
46 47
  my ($self, $myconfig, $form) = @_;
47 48

  
48 49
  # connect to database
49
  my $dbh = $form->dbconnect($myconfig);
50
  my $dbh = SL::DB->client->dbh;
50 51

  
51 52
  my ($where, @values);
52 53

  
......
77 78

  
78 79
  $form->{item_list} = selectall_hashref_query($form, $dbh, $query, @values);
79 80

  
80
  $dbh->disconnect;
81

  
82 81
  $main::lxdebug->leave_sub();
83 82

  
84 83
  return scalar(@{ $form->{item_list} });
......
90 89
  my ($self, $myconfig, $form) = @_;
91 90

  
92 91
  # connect to database
93
  my $dbh = $form->dbconnect($myconfig);
92
  my $dbh = SL::DB->client->dbh;
94 93

  
95 94
  $form->{discount} /= 100;
96 95

  
......
105 104
  }
106 105
  do_query($form, $dbh, $query, @values);
107 106

  
108
  $dbh->disconnect;
109

  
110 107
  $main::lxdebug->leave_sub();
111 108
}
112 109

  
......
116 113
  my ($self, $myconfig, $form) = @_;
117 114

  
118 115
  # connect to database
119
  my $dbh = $form->dbconnect($myconfig);
116
  my $dbh = SL::DB->client->dbh;
120 117

  
121 118
  my $query =
122 119
    qq|SELECT pg.*, | .
......
130 127
  map({ $form->{$_} = $ref->{$_} } keys(%{$ref}));
131 128
  $sth->finish;
132 129

  
133
  $dbh->disconnect;
134

  
135 130
  # also not orphaned if partsgroup is selected for a cvar filter
136 131
  if ($form->{orphaned}) {
137 132
    my $cvar_count = scalar( @{ SL::DB::PartsGroup->new(id => $form->{id})->custom_variable_configs } );
......
147 142
  my ($self, $myconfig, $form) = @_;
148 143

  
149 144
  # connect to database
150
  my $dbh = $form->dbconnect($myconfig);
151

  
152
  my $table = $form->{type} eq "pricegroup" ? "pricegroup" : "partsgroup";
145
  SL::DB->client->with_transaction(sub {
146
    my $dbh = SL::DB->client->dbh;
153 147

  
154
  my $query = qq|DELETE FROM $table WHERE id = ?|;
155
  do_query($form, $dbh, $query, $form->{id});
148
    my $table = $form->{type} eq "pricegroup" ? "pricegroup" : "partsgroup";
156 149

  
157
  $dbh->disconnect;
150
    my $query = qq|DELETE FROM $table WHERE id = ?|;
151
    do_query($form, $dbh, $query, $form->{id});
152
    1;
153
  }) or do { die SL::DB->client->error };
158 154

  
159 155
  $main::lxdebug->leave_sub();
160 156
}
......
168 164
  my ($self, $myconfig, $form) = @_;
169 165

  
170 166
  # connect to database
171
  my $dbh = $form->dbconnect($myconfig);
167
  my $dbh = SL::DB->client->dbh;
172 168

  
173 169
  my ($where, @values);
174 170

  
......
203 199

  
204 200
  $form->{item_list} = selectall_hashref_query($form, $dbh, $query, @values);
205 201

  
206
  $dbh->disconnect;
207

  
208 202
  $main::lxdebug->leave_sub();
209 203

  
210 204
  return scalar(@{ $form->{item_list} });
......
218 212

  
219 213
  my ($self, $myconfig, $form) = @_;
220 214

  
221
  # connect to database
222
  my $dbh = $form->dbconnect($myconfig);
223
  my $query;
224

  
225
  $form->{discount} /= 100;
215
  SL::DB->client->with_transaction(sub {
216
    my $dbh = SL::DB->client->dbh;
217
    my $query;
226 218

  
227
  my @values = ($form->{pricegroup});
219
    $form->{discount} /= 100;
228 220

  
229
  if ($form->{id}) {
230
    $query = qq|UPDATE pricegroup SET pricegroup = ? WHERE id = ? |;
231
    push(@values, $form->{id});
232
  } else {
233
    $query = qq|INSERT INTO pricegroup (pricegroup) VALUES (?)|;
234
  }
235
  do_query($form, $dbh, $query, @values);
221
    my @values = ($form->{pricegroup});
236 222

  
237
  $dbh->disconnect;
223
    if ($form->{id}) {
224
      $query = qq|UPDATE pricegroup SET pricegroup = ? WHERE id = ? |;
225
      push(@values, $form->{id});
226
    } else {
227
      $query = qq|INSERT INTO pricegroup (pricegroup) VALUES (?)|;
228
    }
229
    do_query($form, $dbh, $query, @values);
230
    1;
231
  }) or do { die SL::DB->client->error };
238 232

  
239 233
  $main::lxdebug->leave_sub();
240 234
}
......
248 242
  my ($self, $myconfig, $form) = @_;
249 243

  
250 244
  # connect to database
251
  my $dbh = $form->dbconnect($myconfig);
245
  my $dbh = SL::DB->client->dbh;
252 246

  
253 247
  my $query = qq|SELECT id, pricegroup FROM pricegroup WHERE id = ?|;
254 248
  my $sth = prepare_execute_query($form, $dbh, $query, $form->{id});
......
272 266
  ($form->{orphaned}) = selectrow_query($form, $dbh, $query, @values);
273 267
  $form->{orphaned} = !$form->{orphaned};
274 268

  
275
  $dbh->disconnect;
276

  
277 269
  $main::lxdebug->leave_sub();
278 270
}
279 271

  

Auch abrufbar als: Unified diff