]> dxcluster.org Git - spider.git/commitdiff
add SQLite special
authorminima <minima>
Wed, 21 Dec 2005 16:44:03 +0000 (16:44 +0000)
committerminima <minima>
Wed, 21 Dec 2005 16:44:03 +0000 (16:44 +0000)
perl/DXSql.pm
perl/DXSql/SQLite.pm [new file with mode: 0644]
perl/DXVars.pm.issue
perl/cluster.pl

index 932b9b0e2c35dcf871c9e737ab1cc95283bf3851..a327e07e220dc9a52daf5fed9124964eb2159e7a 100644 (file)
@@ -10,6 +10,12 @@ package DXSql;
 
 use strict;
 
+use vars qw($VERSION $BRANCH);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
 our $active = 0;
 
 sub init
@@ -30,14 +36,37 @@ sub new
 {
        my $class = shift;
        my $dsn = shift;
-       my $user = shift;
-       my $passwd = shift;
        my $self;
        
        return undef unless $active;
        my $dbh;
-       eval {$dbh = DBI->connect($dsn, $user, $passwd); };
-       $self = bless {dbh => $dbh}, $class if $dbh;
+       my ($style) = $dsn =~ /^dbi:(\w+):/;
+       my $newclass = "DXSql::$style";
+       eval "require $newclass";
+       if ($@) {
+               $active = 0;
+               return undef;
+       }
+       return bless {}, $newclass;
+}
+
+sub connect
+{
+       my $self = shift; 
+       my $dsn = shift;
+       my $user = shift;
+       my $passwd = shift;
+       
+       my $dbh;
+       eval {
+               no strict 'refs';
+               $dbh = DBI->connect($dsn, $user, $passwd); 
+       };
+       unless ($dbh) {
+               $active = 0;
+               return undef;
+       }
+       $self->{dbh} = $dbh;
        return $self;
 }
 
diff --git a/perl/DXSql/SQLite.pm b/perl/DXSql/SQLite.pm
new file mode 100644 (file)
index 0000000..2f62461
--- /dev/null
@@ -0,0 +1,21 @@
+#
+# Module for SQLite DXSql variants
+#
+# Stuff like table creates and (later) alters
+#
+# $Id$
+#
+# Copyright (c) 2005 Dirk Koopman G1TLH
+#
+
+package DXSql::SQLite;
+
+use vars qw($VERSION $BRANCH @ISA);
+$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
+$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
+$main::build += $VERSION;
+$main::branch += $BRANCH;
+
+@ISA = qw{DXSql};
+
+1;  
index c8e0cc8d645ba2beac1b57ee5fa8dce3b14f9b0d..6370a56336d5cc1b495253c99962eeb0319b1ddf 100644 (file)
@@ -87,7 +87,7 @@ $motd = "$data/motd";
 @debug = qw(chan state msg cron connect);
 
 # the SQL database DBI dsn
-#$dsn = "dbi:sqlite:$root/data/dxspider.db";
+#$dsn = "dbi:SQLite:dbname=$root/data/dxspider.db";
 #$dbuser = "";
 #$dbpass = "";
 
index 2510c940cd5bfdc107ce2d5dac415628a1887fe3..9eba29c16ec7de16f68d52e09f8a8d0983eedae3 100755 (executable)
@@ -133,7 +133,6 @@ $allowdxby = 0;                                     # 1 = allow "dx by <othercall>", 0 - don't allow it
 use vars qw($VERSION $BRANCH $build $branch);
 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
 $BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
-$main::build += 1;                             # add an offset to make it bigger than last system
 $main::build += $VERSION;
 $main::branch += $BRANCH;
 
@@ -360,7 +359,8 @@ if ($dsn && -e "$root/perl/DXSql.pm") {
        import DXSql;
        
        if (DXSql::init()) {
-               $dbh = DXSql->new($dsn, $dbuser, $dbpass);
+               $dbh = DXSql->new($dsn);
+               $dbh = $dbh->connect($dsn, $dbuser, $dbpass) if $dbh;
        }
 }