-sub dbsources_unused {
- $main::lxdebug->enter_sub();
-
- my ($self, $form, $memfile) = @_;
-
- my @dbexcl = ();
- my @dbsources = ();
-
- $form->error('File locked!') if (-f "${memfile}.LCK");
-
- # open members file
- open(FH, "$memfile") or $form->error("$memfile : $!");
-
- while (<FH>) {
- if (/^dbname=/) {
- my ($null, $item) = split /=/;
- push @dbexcl, $item;
- }
- }
-
- close FH;
-
- $form->{only_acc_db} = 1;
- my @db = &dbsources("", $form);
-
- push @dbexcl, $form->{dbdefault};
-
- foreach $item (@db) {
- unless (grep /$item$/, @dbexcl) {
- push @dbsources, $item;
- }
- }
-
- $main::lxdebug->leave_sub();
-
- return @dbsources;
-}
-
-sub dbneedsupdate {
- $main::lxdebug->enter_sub();
-
- my ($self, $form) = @_;
-
- my %dbsources = ();
- my $query;
-
- $form->{sid} = $form->{dbdefault};
- &dbconnect_vars($form, $form->{dbdefault});
-
- my $dbh =
- DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd})
- or $form->dberror;
-
- if ($form->{dbdriver} eq 'Pg') {
-
- $query = qq|SELECT d.datname FROM pg_database d, pg_user u
- WHERE d.datdba = u.usesysid
- AND u.usename = '$form->{dbuser}'|;
- my $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
- while (my ($db) = $sth->fetchrow_array) {
-
- next if ($db =~ /^template/);
-
- &dbconnect_vars($form, $db);
-
- my $dbh =
- DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd})
- or $form->dberror;
-
- $query = qq|SELECT t.tablename FROM pg_tables t
- WHERE t.tablename = 'defaults'|;
- my $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
- if ($sth->fetchrow_array) {
- $query = qq|SELECT version FROM defaults|;
- my $sth = $dbh->prepare($query);
- $sth->execute;
-
- if (my ($version) = $sth->fetchrow_array) {
- $dbsources{$db} = $version;
- }
- $sth->finish;
- }
- $sth->finish;
- $dbh->disconnect;
- }
- $sth->finish;
- }
-
- if ($form->{dbdriver} eq 'Oracle') {
- $query = qq|SELECT o.owner FROM dba_objects o
- WHERE o.object_name = 'DEFAULTS'
- AND o.object_type = 'TABLE'|;
-
- $sth = $dbh->prepare($query);
- $sth->execute || $form->dberror($query);
-
- while (my ($db) = $sth->fetchrow_array) {
-
- $form->{dbuser} = $db;
- &dbconnect_vars($form, $db);
-
- my $dbh =
- DBI->connect($form->{dbconnect}, $form->{dbuser}, $form->{dbpasswd})
- or $form->dberror;
-
- $query = qq|SELECT version FROM defaults|;
- my $sth = $dbh->prepare($query);
- $sth->execute;
-
- if (my ($version) = $sth->fetchrow_array) {
- $dbsources{$db} = $version;
- }
- $sth->finish;
- $dbh->disconnect;
- }
- $sth->finish;
- }
-
- $dbh->disconnect;
-
- $main::lxdebug->leave_sub();
-
- return %dbsources;
-}
-
-## LINET