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/ +
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.