Okay: here's a good one for you:
I'm using MySQL and have some tables where I can't use auto_increment on the
primary keys (for some weird reason I won't bother to explain) and want to
control the sequence of said primary keys manually.
Sounds simple enough.
Imagine I have the following table:
book
=============
id (INT)
name (TEXT)
author (TEXT)
Which gives me Library::Book to work with.
I've overridden do_edit to read:
sub do_edit :Exported {
my ($self, $r) = @_;
$r->{params}{$self->primary_columns} = &some_value;
....
# the rest of this is the same as the original do_edit
....
}
I then perform do_edit on Library::Book and pass it $r->{params} which consists
of values for $r->{params}{name} and $r->{params}{author}.
Unfortunately somewhere in the bowels of Maypole (perhaps in CGI::Untaint,
CDBI::FromCGI or DBIx::ContextualFetch) the value that I set in do_edit for the
primary key is lost and I receive the following error:
Can't insert new Library::Book: DBD::mysql::st execute failed:
Column 'id' cannot be null [for Statement "INSERT INTO book (name, author, id)
VALUES (?, ?, ?)"]
at
/usr/local/lib/perl5/site_perl/5.8.5/DBIx/ContextualFetch.pm line 51, <GEN2>
line 7. at /usr/local/lib/perl5/site_perl/5.8.5/Class/DBI/FromCGI.pm line 246
Does anyone have any idea where in the Maypole framework I can force it to
accept a manually created primary key?
Thank you,
Matt
-- Matt Adams <matt.adams at morcor.com> Development Specialist Morcor Solutions Inc. <http://www.morcor.com/> (613) 354-2912 x228GnuPG public key at <http://staff.morcor.com/~madams/> Key fingerprint: BED5 B4F7 CCF5 D7B5 7C56 0505 9A0A A0FB C937 5975
_______________________________________________ maypole mailing list maypole at lists.netthink.co.uk http://lists.netthink.co.uk/listinfo/maypole
This archive was generated by hypermail 2.1.3 : Thu Feb 24 2005 - 22:25:56 GMT