I need input on the best way to implement the following...i.e. put into a transaction
I have records with 0 or more parent, grandparent, etc levels up and need to ensure that quantities are not exceeded (i.e. qtyfield1-qtyfield2>=0) If currentrecord qtyfield1-(qtyfield2 + qty)>=0 AND every parent, grandparent, etc qtyfield1-(qtyfield2 + qty)>=0, then update qtyfield2 with qtyfield2+qty at all levels. Would putting something like this in the bizObj.validateRecord be sufficient...? ret='' self.tmpCursor= conn.getDaboCursor() self.tmpCursor.execute('begin transaction') If self.updateqty2(pk,self.tmpCursor,qty): self.tmpCursor.execute('commit') else: self.tmpCursor.execute('rollback') ret='No can do' return(ret) def updateqty2(self,pk,tmpCursor,qty): tmpCursor.execute('select fk_parentid, qtyfield1-qtyfield2 as testqty from public.table where pkid=%s'%(pk,)) if tmpCursor.RowCount==0: return(True) ## no more parent levels else: ds=tmpCursor.getDataSet() ##is there a better way to get the field values? for parentrecord in ds: if parentrecord["testqty"]-qty>0 tmpCursor.execute('update public.table set qtyfield2=qtyfield2+%s where pkid=%s'%(qty,pk)) ##is this recursive call ok? return(self.updateqty2(parentrecord["fk_parentid"],tmpCursor,qty)) else: return(False) TIA, Larry Long No virus found in this outgoing message. Checked by AVG Free Edition. Version: 7.5.484 / Virus Database: 269.12.0/957 - Release Date: 08/16/2007 1:46 PM _______________________________________________ Post Messages to: Dabo-users@leafe.com Subscription Maintenance: http://leafe.com/mailman/listinfo/dabo-users Searchable Archives: http://leafe.com/archives/search/dabo-users This message: http://leafe.com/archives/byMID/dabo-users/[EMAIL PROTECTED]