Problem with set_sql in Class::DBI::Loader::mysql

Problem with set_sql in Class::DBI::Loader::mysql

am 22.03.2006 20:47:44 von Eden

Hello everyone,
I'm developing a system based on Maypole, which in turn is based on
Class::DBI::Loader. SQLite was being used for testing, until then
everything was fine. But when I switched over to mysql, its
corresponding Loader class complains about not having the set_sql
method available in Class::DBI::mysql, which it should since it
inherits from Class::DBI. The doc synopsis for
Class::DBI::Loader::mysql doesn't even compile, the output is:

Couldn't require loader class "Class::DBI::Loader::mysql", "Can't
locate object method "set_sql" via package "Class::DBI::mysql" at
/usr/lib/perl5/site_perl/5.8.6/Class/DBI/mysql.pm line 58.
Compilation failed in require at
/usr/lib/perl5/site_perl/5.8.6/Class/DBI/Loader/mysql.pm line 8.
Compilation failed in require at (eval 1) line 2.
BEGIN failed--compilation aborted at (eval 1) line 2.
" at /usr/lib/perl5/site_perl/5.8.6/Class/DBI/Loader.pm line 81.

I've tried debugging the thing up to where it calls the set_sql method,
the @Class::DBI::mysql::ISA array is fine, but still the method won't
show up. I'm running a fedora 4 linux box, mysql 5.0 and perl 5.8.6. I
installed DBD::mysql from the fedora package repository. Who's doing it
wrong, me or the module?
Thanks in advance.

Re: Problem with set_sql in Class::DBI::Loader::mysql

am 25.03.2006 18:47:30 von stephane.kattoor

Eden Cardim a =E9crit :

> Couldn't require loader class "Class::DBI::Loader::mysql", "Can't
> locate object method "set_sql" via package "Class::DBI::mysql" at
> /usr/lib/perl5/site_perl/5.8.6/Class/DBI/mysql.pm line 58.
> Compilation failed in require at
> /usr/lib/perl5/site_perl/5.8.6/Class/DBI/Loader/mysql.pm line 8.
> Compilation failed in require at (eval 1) line 2.
> BEGIN failed--compilation aborted at (eval 1) line 2.
> " at /usr/lib/perl5/site_perl/5.8.6/Class/DBI/Loader.pm line 81.

Very same problem here, trying to build an application with Catalyst
... Any perl guru with a good hint ?

St=E9phane

Re: Problem with set_sql in Class::DBI::Loader::mysql

am 28.03.2006 14:41:23 von Eden

stephane.kattoor@gmail.com wrote:
> Very same problem here, trying to build an application with Catalyst
> ... Any perl guru with a good hint ?

I figured it out. For some reason, the modules aren't loading in the
correct order, I didn't have time to delve deeper into the module code.
So I tried loading them manually and it ended up working. So, start
your code with this:

use Class::DBI::Loader;
use Class::DBI::mysql;
use Class::DBI::Loader::mysql;

and everything should go fine.