Update of /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Datasource
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29694
Modified Files:
DBI.pm
Log Message:
OIN-157: Class::DBI requires DBIx::ContextualFetch to be set in the
RootClass attribute of the connect() call (grr...)
Index: DBI.pm
===================================================================
RCS file: /cvsroot/openinteract/OpenInteract2/lib/OpenInteract2/Datasource/DBI.pm,v
retrieving revision 1.17
retrieving revision 1.18
diff -C2 -d -r1.17 -r1.18
*** DBI.pm 17 Mar 2005 14:58:01 -0000 1.17
--- DBI.pm 25 Mar 2005 05:40:02 -0000 1.18
***************
*** 17,25 ****
use constant DEFAULT_TRUNC_OK => 0;
sub connect {
my ( $class, $ds_name, $ds_info ) = @_;
$log ||= get_logger( LOG_DS );
unless ( ref $ds_info ) {
! $log->error( "No data given to create DBI [$ds_name] handle" );
oi_error "Cannot create connection without datasource info";
}
--- 17,27 ----
use constant DEFAULT_TRUNC_OK => 0;
+ my @CONNECT_ATTRIBUTES = qw( RootClass );
+
sub connect {
my ( $class, $ds_name, $ds_info ) = @_;
$log ||= get_logger( LOG_DS );
unless ( ref $ds_info ) {
! $log->error( "No data given to create DBI '$ds_name' handle" );
oi_error "Cannot create connection without datasource info";
}
***************
*** 46,49 ****
--- 48,57 ----
my $password = $full->{password};
+ my %connect_attr = map { $_ => $full->{ $_ } }
+ grep { defined $full->{ $_ } }
+ @CONNECT_ATTRIBUTES;
+ $connect_attr{RaiseError} = 0;
+ $connect_attr{PrintError} = 0;
+
if ( $log->is_debug ) {
my %dumpable = %{ $full };
***************
*** 54,59 ****
my $db = DBI->connect( $dsn, $username, $password,
! { RaiseError => 0,
! PrintError => 0 } );
unless ( $db ) {
oi_datasource_error
--- 62,66 ----
my $db = DBI->connect( $dsn, $username, $password,
! \%connect_attr );
unless ( $db ) {
oi_datasource_error
***************
*** 118,122 ****
type dsn username password long_read_len long_trunc_ok trace_level
);
! my %info = map { $_ => $ds_info->{ $_ } } @copy_properties;
my $dbi_type = lc $ds_info->{dbi_type};
--- 125,129 ----
type dsn username password long_read_len long_trunc_ok trace_level
);
! my %info = map { $_ => $ds_info->{ $_ } } @copy_properties, @CONNECT_ATTRIBUTES;
my $dbi_type = lc $ds_info->{dbi_type};
|