use vars qw($dbdef_file $dbdef $setup_hack $AUTOLOAD @ISA @EXPORT_OK);
use subs qw(reload_dbdef);
use Exporter;
-use Carp;
+use Carp qw(carp cluck croak confess);
use File::CounterFile;
use FS::UID qw(dbh checkruid swapuid getotaker datasrc);
use FS::dbdef;
@ISA = qw(Exporter);
@EXPORT_OK = qw(dbh fields hfields qsearch qsearchs dbdef);
-$File::CounterFile::DEFAULT_DIR = "/var/spool/freeside/counters" ;
-
-$dbdef_file = "/var/spool/freeside/dbdef.". datasrc;
-
-reload_dbdef unless $setup_hack;
+#ask FS::UID to run this stuff for us later
+$FS::UID::callback{'FS::Record'} = sub {
+ $File::CounterFile::DEFAULT_DIR = "/usr/local/etc/freeside/counters.". datasrc;
+ $dbdef_file = "/usr/local/etc/freeside/dbdef.". datasrc;
+ &reload_dbdef unless $setup_hack; #$setup_hack needed now?
+};
=head1 NAME
my($sth);
my($statement) = "SELECT * FROM $table". ( @fields
? " WHERE ". join(' AND ',
- map("$_ = ". _quote($record->{$_},$table,$_), @fields)
- )
- : ''
+ map {
+ $record->{$_} eq ''
+ ? "$_ IS NULL"
+ : "$_ = ". _quote($record->{$_},$table,$_)
+ } @fields
+ ) : ''
);
$sth=$dbh->prepare($statement)
or croak $dbh->errstr; #is that a little too harsh? hmm.
eval 'create FS::'. $table. ' ( $sth->fetchrow_hashref );';
} ( 1 .. $sth->execute );
} else {
- carp "qsearch: warning: FS::$table not loaded; returning generic FS::Record objects";
+ cluck "qsearch: warning: FS::$table not loaded; returning generic FS::Record objects";
map {
new FS::Record ($table,$sth->fetchrow_hashref);
} ( 1 .. $sth->execute );
=back
+=head1 VERSION
+
+$Id: Record.pm,v 1.8 1998-11-15 11:02:04 ivan Exp $
+
=head1 BUGS
This module should probably be renamed, since much of the functionality is
ut_phonen got ''; at the end ivan@sisd.com 98-sep-27
$Log: Record.pm,v $
-Revision 1.4 1998-11-10 07:45:25 ivan
+Revision 1.8 1998-11-15 11:02:04 ivan
+bugsquash
+
+Revision 1.7 1998/11/15 10:56:31 ivan
+qsearch gets sames "IS NULL" semantics as other WHERE clauses
+
+Revision 1.6 1998/11/15 05:31:03 ivan
+bugfix for new config layout
+
+Revision 1.5 1998/11/13 09:56:51 ivan
+change configuration file layout to support multiple distinct databases (with
+own set of config files, export, etc.)
+
+Revision 1.4 1998/11/10 07:45:25 ivan
doc clarification
Revision 1.2 1998/11/07 05:17:18 ivan