123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #####################################################
- # dbcore_pgsql.pm
- #
- # These are the "core" routines for using a
- # PostgreSQL database.
- #
- # See COPYING for licensing information.
- #
- #####################################################
- # Perl modules
- use strict;
- use DBD::Pg;
- # global variables
- use vars qw($conf $dbh $dbconnected);
- $dbconnected = '';
- #############################################################
- # connect to database
- #############################################################
- sub dbconnect {
- # allow persistance?
- return
- if $dbh and
- $$conf{'persistance'} and
- $$conf{'persistance'} eq 'YES';
- # Name of GnuDIP (mySQL) database
- my $gnudipdatabase = $$conf{'gnudipdatabase'};
- # User name to connect to the database
- my $gnudipuser = $$conf{'gnudipuser'};
- # Password to connect to the database
- my $gnudippass = $$conf{'gnudippassword'};
- # Host where the database server resides
- my $gnudipserver = $$conf{'gnudipserver'};
- $gnudipdatabase = '' if !defined($gnudipdatabase);
- $gnudipuser = '' if !defined($gnudipuser);
- $gnudippass = '' if !defined($gnudippass);
- $gnudipserver = '' if !defined($gnudipserver);
- # connect to database
- my $gnudipconn = "dbi:Pg:dbname=$gnudipdatabase";
- $gnudipconn = "dbi:Pg:dbname=$gnudipdatabase;host=$gnudipserver"
- if $gnudipserver;
- $dbh = DBI->connect(
- $gnudipconn,
- $gnudipuser,
- $gnudippass
- );
- if (!$dbh) {
- my $str = $DBI::errstr;
- writelog('Could not connect to PostgreSQL database:');
- writelog(" message: $str");
- dberror();
- }
- }
- #############################################################
- # execute an SQL statement and catch errors
- #############################################################
- sub dbexecute {
- my $statement = shift;
- if (! $dbconnected) {
- dbconnect();
- $dbconnected = 1;
- }
- my $sth = $dbh->prepare($statement);
- if (!$sth) {
- my $str = $DBI::errstr;
- writelog('Could not prepare SQL statement:');
- writelog(" statement: $statement");
- writelog(" message: $str");
- dberror();
- }
- my $rc = $sth->execute;
- if (!$rc) {
- my $str = $DBI::errstr;
- writelog('Could not execute SQL statement:');
- writelog(" statement: $statement");
- writelog(" message: $str");
- dberror();
- }
- return $sth;
- }
- #####################################################
- # must return 1
- #####################################################
- 1;
|