85 |
85 |
|
86 |
86 |
use strict;
|
87 |
87 |
|
88 |
|
my $standard_dbh;
|
89 |
|
|
90 |
|
END {
|
91 |
|
disconnect_standard_dbh();
|
92 |
|
}
|
93 |
|
|
94 |
|
sub disconnect_standard_dbh {
|
95 |
|
return unless $standard_dbh;
|
96 |
|
|
97 |
|
$standard_dbh->rollback();
|
98 |
|
undef $standard_dbh;
|
99 |
|
}
|
100 |
|
|
101 |
88 |
sub read_version {
|
102 |
89 |
my ($self) = @_;
|
103 |
90 |
|
... | ... | |
1388 |
1375 |
}
|
1389 |
1376 |
|
1390 |
1377 |
# Database routines used throughout
|
|
1378 |
# DB Handling got moved to SL::DB, these are only shims for compatibility
|
1391 |
1379 |
|
1392 |
1380 |
sub dbconnect {
|
1393 |
|
$main::lxdebug->enter_sub(2);
|
1394 |
|
|
1395 |
|
my ($self, $myconfig) = @_;
|
1396 |
|
|
1397 |
|
# connect to database
|
1398 |
|
my $dbh = SL::DBConnect->connect or $self->dberror;
|
1399 |
|
|
1400 |
|
# set db options
|
1401 |
|
if ($myconfig->{dboptions}) {
|
1402 |
|
$dbh->do($myconfig->{dboptions}) || $self->dberror($myconfig->{dboptions});
|
1403 |
|
}
|
1404 |
|
|
1405 |
|
$main::lxdebug->leave_sub(2);
|
1406 |
|
|
1407 |
|
return $dbh;
|
1408 |
|
}
|
1409 |
|
|
1410 |
|
sub dbconnect_noauto {
|
1411 |
|
$main::lxdebug->enter_sub();
|
1412 |
|
|
1413 |
|
my ($self, $myconfig) = @_;
|
1414 |
|
|
1415 |
|
# connect to database
|
1416 |
|
my $dbh = SL::DBConnect->connect(SL::DBConnect->get_connect_args(AutoCommit => 0)) or $self->dberror;
|
1417 |
|
|
1418 |
|
# set db options
|
1419 |
|
if ($myconfig->{dboptions}) {
|
1420 |
|
$dbh->do($myconfig->{dboptions}) || $self->dberror($myconfig->{dboptions});
|
1421 |
|
}
|
1422 |
|
|
1423 |
|
$main::lxdebug->leave_sub();
|
1424 |
|
|
1425 |
|
return $dbh;
|
|
1381 |
SL::DB->client->dbh;
|
1426 |
1382 |
}
|
1427 |
1383 |
|
1428 |
1384 |
sub get_standard_dbh {
|
1429 |
|
$main::lxdebug->enter_sub(2);
|
|
1385 |
my $dbh = SL::DB->client->dbh;
|
1430 |
1386 |
|
1431 |
|
my $self = shift;
|
1432 |
|
my $myconfig = shift || \%::myconfig;
|
1433 |
|
|
1434 |
|
if ($standard_dbh && !$standard_dbh->{Active}) {
|
1435 |
|
$main::lxdebug->message(LXDebug->INFO(), "get_standard_dbh: \$standard_dbh is defined but not Active anymore");
|
1436 |
|
undef $standard_dbh;
|
|
1387 |
if ($dbh && !$dbh->{Active}) {
|
|
1388 |
$main::lxdebug->message(LXDebug->INFO(), "get_standard_dbh: \$dbh is defined but not Active anymore");
|
|
1389 |
SL::DB->client->dbh(undef);
|
1437 |
1390 |
}
|
1438 |
1391 |
|
1439 |
|
$standard_dbh ||= SL::DB->client->dbh;
|
1440 |
|
|
1441 |
|
$main::lxdebug->leave_sub(2);
|
1442 |
|
|
1443 |
|
return $standard_dbh;
|
|
1392 |
SL::DB->client->dbh;
|
1444 |
1393 |
}
|
1445 |
1394 |
|
1446 |
|
sub set_standard_dbh {
|
1447 |
|
my ($self, $dbh) = @_;
|
1448 |
|
my $old_dbh = $standard_dbh;
|
1449 |
|
$standard_dbh = $dbh;
|
1450 |
|
|
1451 |
|
return $old_dbh;
|
|
1395 |
sub disconnect_standard_dbh {
|
|
1396 |
SL::DB->client->dbh->rollback;
|
1452 |
1397 |
}
|
1453 |
1398 |
|
|
1399 |
# /database
|
|
1400 |
|
1454 |
1401 |
sub date_closed {
|
1455 |
1402 |
$main::lxdebug->enter_sub();
|
1456 |
1403 |
|
get_standard_dbh entfernt und auf SL::DB->client->dbh umgebogen