[ic] Error correction in DBI.pm

David Etheredge David_e at charter.net
Mon Feb 3 03:52:52 UTC 2014


In trying to debug the problem with my db files, I found what may be an 
error in DBI.pm.


sub open_table {

my ($class, $config, $tablename) = @_;

$config->{PRINTERROR} = 0 if ! defined $config->{PRINTERROR};

$config->{RAISEERROR} = 1 if ! defined $config->{RAISEERROR};

my @call;

#::logDebug("opening table class=$class tablename=$tablename config=" . 
::uneval($config) . " call=@call"); #<<<<<Line does not work properly here 
because @call has not been determined you.

my $dattr;

my $db;

DOCONNECT: {

@call = find_dsn($config);

$dattr = pop @call;

::logDebug("opening table class=$class tablename=$tablename config=" . 
::uneval($config) . " call=@call"); #<<<<<<< correct information is reported 
when the line is moved to here.

if (! $config->{AUTO_SEQUENCE} and ! defined $config->{AutoNumberCounter}) {

eval {

$config->{AutoNumberCounter} = new Vend::CounterFile

$config->{AUTO_NUMBER_FILE},

$config->{AUTO_NUMBER} || '00001',

$config->{AUTO_NUMBER_DATE};

};

if($@) {

::logError("Cannot create AutoNumberCounter: %s", $@);

::logDebug("Cannot create AutoNumberCounter: %s", $@);

$config->{AutoNumberCounter} = '';

}

}

unless ($config->{dsn_id}) {

$config->{dsn_id} = join "_", grep ! ref($_), @call;

$config->{dsn_id} .= "_transact" if $config->{Transactions};

}




More information about the interchange-users mailing list