Now I understand that DBIx::Class is more flexible than Class::DBI! On the other hand, this comes at the price of longer code for simple tasks, e.g., for inserting into a table
'Person', one would use
# using DBIx::Class:
$schema->resultset('Person')->new({FirstName=>'Joe'})->insert();
# using Class::DBI:
DB::Person->insert({FirstName=>'Joe'});
Nevertheless, the greater flexibility motivated me to try DBIx::Class, too. What still bothers me is that
package DB::Person;
use base 'DBIx::Class';
__PACKAGE__->load_components(qw/PK::Auto Core/);
__PACKAGE__->table('T_PERSON');
__PACKAGE__->add_columns(qw[PersonId FirstName]);
__PACKAGE__->set_primary_key('PersonId');
package DB;
use base 'DBIx::Class::Schema';
__PACKAGE__->load_classes(qw[Person]);
fails with
Can't locate object method "result_source_instance" via package "DB/Person" (perhaps you forgot to load "DB/Person"?) at c:/Perl/site/lib/DBIx/Class/Schema.pm line 75. If I put the definition of
DB::Person into
DB/Person.pm, it works, but is far less elegant/compact. Is there a smarter solution?
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.