Re: [CDBI] Committing on delete
Matt S Trout <dbix-class-uY5y5/[email protected]>
| Newsgroups | gmane.comp.lang.perl.modules.class-dbi |
|---|---|
| Message-ID | <[email protected]> |
Nick Peters wrote:
> Hi, I'm sorry about having to ask such a basic question.
>
> I'm trying to add transactions to my database. I have been able to
> commit insertions and edit records but I really can't work out how to
> commit deletions.
>
> Trying update or dbi_commit on the object I have just deleted gives me
> the error "Can't locate object method "x" via package
> "Class::DBI::Object::Has::Been::Deleted" which I can understand as I'm
> trying to call it on an object I have just deleted but I can't work out
> how I am meant to commit the change.
Right. Class::DBI can't deal with objects not in the database so it re-blesses
deleted objects into that dummy class (as opposed to DBIx::Class' approach of
clearing an ->in_storage flag on the object, which has a different set of
tradeoffs attached).
Best bet would be to grab the class of the object immediately before you
delete it and then calling dbi_commit on the class; since CDBI handles
connection info as classdata that should work just fine.
--
Matt S Trout Offering custom development, consultancy and support
Technical Director contracts for Catalyst, DBIx::Class and BAST. Contact
Shadowcat Systems Ltd. mst (at) shadowcatsystems.co.uk for more information
+ Help us build a better perl ORM: http://dbix-class.shadowcatsystems.co.uk/ +