Sujet: Re: problème de recuperation de la valeur d'un cham p de la base de donnée
De: sboa_marie1 (l' arobase) yahoo.fr (guyguy)
Groupes: fr.comp.lang.python
Organisation: http://groups.google.com
Date: 30. Jun 2008, 18:32:58
On 30 juin, 16:28, Bruno Desthuilliers <bruno.
42.desthuilli...@websiteburo.invalid> wrote:
guyguy a écrit :
Bonsoir
je veux recuperer la valeur d'un champ pour poser une condition if
Voici le code
def create(self,cr,uid,vals,context={}):
Gotcha : les valeurs par défaut des arguments ne sont évaluées qu'une
seule et unique fois. Tu veux:
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
vals['txtp'] = vals['tx_part']
# compare la somme des taux existant à 100
crt_obj > > self.pool.get('production.contrat').browse(cr,uid,vals['numcontrat'])
id_contrat = (str(crt_obj)[-2:-1])
coa = crt_obj.numcontrat
sit = crt_obj.situation
type_sous = crt_obj.type_souscri
cr.execute("SELECT txtp FROM production_coassurance WHERE
numcontrat=%s AND situation=%s AND type_souscri=%s" ,[id_contrat, sit,
type_sous])
res = []
for val in cr.fetchall():
res.append(val)
vals['txtp'] = res[0][0] + vals['txtp']
(-------------jusqu'ici il marche--------------)
*Non*. cf réponse dans un thread précédent.
cr.execute("select txtp from production_coassurance where
numcontrat=%s",[id_contrat])
rs = []
for k in cr.fetchall():
rs.append(k)
*pourquoi* ??? Pourquoi cette boucle *inutile* qui reconstruit à
l'identique la liste retournée par cr.fetchall() ? Est-ce que tu
comprends le code que tu écris ??? Ou est-ce que tu essayes n'importe
quoi au hasard - en évitant soigneusement de lire la doc - jusqu'à ce
que *par accident*, ça *semble* donner le résultat ? Désolé d'être
désagréable, mais là, vraiment, il y a de quoi se poser des questions.
je veux txtp qui est un champ de la base qui est de integer
je veux poser une condition s'il est superieur à 100 par exemple
Clause WHERE de ta requete SQL.
Merci Bruno pour la remarque sur mon code
je pense faire un effort la prochaine fois
Ne te gène pas de me dire parce que je doit être un bon developpeur en
python