[Dbix-class] Class::DBI vs DBIx and CDBICompat

Steven Mackenzie dbix at aptile.co.uk
Mon Jun 26 18:19:47 CEST 2006


Matt S Trout wrote:

>Steven Mackenzie wrote:
>  
>
>>I stumbled upon this piece of documentation:
>>http://search.cpan.org/~jrobinson/DBIx-Class-0.06003/lib/DBIx/Class/CDBICompat.pm
>>
>>Which suggests that I can start using DBIx::Class simply my making this
>>change to my Class::DBI code:
>>
>># In DBBase.pm
>>#use base qw( Class::DBI ); # currently using 3.0.6 from ActiveState ppm.
>>use base qw/DBIx::Class/; # currently 0.6000 from ActiveState pmm__PACKAGE__->load_components( qw/CDBICompat Core DB/ );
>>
>>However, I get this error at startup:
>>Can't locate object method "set_db" via package "DBBase" at
>>C:\xyz\InitDatabase.pm line 33.
>>
>>In my application I make the call to the Class::DBI method set_db via my
>>DBBase.pm module, like this:
>>  DBBase->set_db
>>  (
>>    'Main',
>>    $dsn, # passed in by caller
>>    $username,
>>    $password,
>>    {RaiseError => 1,
>>     AutoCommit => 0, # Don't autocommit transactions
>>     unicode => 1}
>>  );
>>
>>
>>How can I set the DBIx::Class DB connection?
>>    
>>
>
>Why can't you just call ->connection ?
>  
>
Because I thought that the Compat API was complete, and I don't know the
DBIx::Class API.

I've tried replacing the DBBase->set_db() call with  a call to
DBBase->connection(), but then I get this error the first time I try to
use one of my CDBI classes:
Can't call method "storage" on an undefined value at
C:/Perl/site/lib/DBIx/Class/ResultSource.pm line 411.

Has this every come up before? I didn't find anything in the mailing
list archive ...

Steven



More information about the Dbix-class mailing list