in reply to Re^2: Class::DBI::Loader error: Can't locate object method "set_db"
in thread Class::DBI::Loader error: Can't locate object method "set_db"
The following code works for me. It has the following differences:
- It uses DBD::SQLite, where you use DBD::mysql
- I didn't test out putting the whole stuff into two separate files.
One thing that comes to mind: Did you install the proper Class::DBI subclass (Class::DBI::mysql) ?
Table setup script
#!/usr/bin/perl -w use strict; use DBI; my $dbh = DBI->connect('dbi:SQLite:dbfile=kudra.sqlite',"","", {AutoCo +mmit => 0}); my @statements; { local $/; @statements = split /;/, <DATA>; }; for my $statement (@statements) { print "$statement\n"; eval { $dbh->do($statement); $dbh->commit; }; $@ ||= $dbh->errstr; if ($@) { if ($statement =~ /^drop/i) { warn $@; } else { die $@; }; }; }; $dbh->commit; $dbh->disconnect; __DATA__ create table person ( id INTEGER PRIMARY KEY, name VARCHAR(256) ); insert into person (name) values ("Corion"); insert into person (name) values ("Kudra"); insert into person (name) values ("vroom"); insert into person (name) values ("jcwren");
Class::DBI script
#!/usr/local/bin/perl -w package MyCompany::MyProduct::Database; use Class::DBI::Loader; my $loader = Class::DBI::Loader->new( dsn => "dbi:SQLite:dbfile=kudra.sqlite", user => "username", password => "password", namespace => 'MyCompany::MyProduct::Database', relationships => 1); package main; use strict; use warnings; #use MyCompany::MyProduct::Database; use Data::Dumper; my $person = MyCompany::MyProduct::Database::Person->retrieve(3); print Dumper $person;
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^4: Class::DBI::Loader error: Can't locate object method "set_db"
by kudra (Vicar) on Apr 12, 2005 at 11:34 UTC |
In Section
Seekers of Perl Wisdom