Eviter les doublon

Le
Boa Guy Serge
Bonjour
Je n'arrive pas à éviter les enregistrement double(c'est à dire
enregistrer deux fois le même enregistrement)
Voici mon code

cr.execute("SELECT DISTINCT code_client FROM production_client WHERE
numcontrat=%s AND type_souscri=%s" ,[id_contrat, type_sous])
clt = []
for t in cr.fetchall():
clt.append(t)
while len (clt) !=0:
try:
dernier = clt.pop()
except:
pass
else:
if dernier == clt.append() :
raise osv.except_osv('Warning !', 'il exciste
déjà!')
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jonathan Ballet
Le #16334691
Le Tue, 15 Jul 2008 02:43:33 -0700 (PDT), Boa Guy Serge
Bonjour
Je n'arrive pas à éviter les enregistrement double(c'est à dire
enregistrer deux fois le même enregistrement)
Voici mon code

cr.execute("SELECT DISTINCT code_client FROM production_client WHERE
numcontrat=%s AND type_souscri=%s" ,[id_contrat, type_sous])
clt = []
for t in cr.fetchall():
clt.append(t)
while len (clt) !=0:
try:
dernier = clt.pop()
except:
pass
else:
if dernier == clt.append() :
raise osv.except_osv('Warning !', 'il exciste
déjà!')



Bonjour,

1. comment peux tu avoir des doublons si tu utilises DISTINCT dans ta requ ête SQL ?
1. ton code ne _peut pas_ fonctionner comme ça, impossible de comprend re ce que tu veux faire.
3. si tu veux quand même gérer des doublons, regarde le type de d onnées `set`
4. je crois que l'on t'a déjà dit (plusieurs fois) que le fetchal l() + append() ne servait à rien.

- Jonathan
Mihamina Rakotomandimby (R12y)
Le #16337101
Jonathan Ballet wrote:
2. ton code ne _peut pas_ fonctionner comme ça, impossible de comprendre ce que tu veux faire.



'cr' est un curseur, je pense qu'il utilise le module MysqlDB.
Mais j'avoue qu'il devrait revoir sa façon de poser les question.

Donc voici mon conseil à Boa Guy Serge:
Faire un exemple le plus simple possible et complet (mais ne pas
balancer un "morceau de code") qui résume la situation.
Mihamina Rakotomandimby (R12y)
Le #16337091
Boa Guy Serge wrote:
if dernier == clt.append() :



Tu compare quoi *exactement*, là?
Boa Guy Serge
Le #16337991
On 16 juil, 06:57, "Mihamina Rakotomandimby (R12y)"
Boa Guy Serge wrote:
>                 if dernier == clt.append() :

Tu compare quoi *exactement*, là?



Merci mon code n'est pas bon, mais j'ai pu resoudre mon problème
Merci à tous
Mihamina Rakotomandimby (R12y)
Le #16342021
Boa Guy Serge wrote:
if dernier == clt.append() :


Tu compare quoi *exactement*, là?


Merci mon code n'est pas bon, mais j'ai pu resoudre mon problème



Je souhaiterais, si possible, voir comment as tu fait.
Mihamina Rakotomandimby (R12y)
Le #16342031
Boa Guy Serge wrote:
if dernier == clt.append() :


Tu compare quoi *exactement*, là?


Merci mon code n'est pas bon, mais j'ai pu resoudre mon problème



Je souhaiterais, si possible, voir comment as tu fait.
bruno.desthuilliers
Le #16345851
On 16 juil, 15:47, "Mihamina Rakotomandimby (R12y)"
Boa Guy Serge wrote:
>>> if dernier == clt.append() :
>> Tu compare quoi *exactement*, là?
> Merci mon code n'est pas bon, mais j'ai pu resoudre mon problème

Je souhaiterais, si possible, voir comment as tu fait.



Moi pas.
Méta-MCI \(MVP\)
Le #16349641
Bonjour !


Je souhaiterais, si possible, voir comment as tu fait.



Un optimiste.


Moi pas.



Un réaliste.



Perso, étant en ouakanss, je préfère aller me baigner.


@+
--
Michel Claveau
JB
Le #16349631
a écrit :
On 16 juil, 15:47, "Mihamina Rakotomandimby (R12y)"
Boa Guy Serge wrote:
if dernier == clt.append() :


Tu compare quoi *exactement*, là?


Merci mon code n'est pas bon, mais j'ai pu resoudre mon problème


Je souhaiterais, si possible, voir comment as tu fait.



Moi pas.



moi non plus :) LOL
Boa Guy Serge
Le #16351041
On 17 juil, 09:21, "Méta-MCI (MVP)"
Bonjour !

> Je souhaiterais, si possible, voir comment as tu fait.

Un optimiste.

> Moi pas.

Un réaliste.

Perso, étant en ouakanss, je préfère aller me baigner.

@+
--
Michel Claveau



Voici mon code (mon objectif était d'éviter les enregistrement double
dans la base)


# Verification de la saisie d'un seul client dans la base (Eviter les
doublons)
cr.execute("SELECT code_clt FROM production_client WHERE
numcontrat=%s AND type_souscri=%s AND situation=%s" ,[id_contrat,
type_sous,sit])
res = []
new = vals['code_clt']
[res.append(k[0]) for k in cr.fetchall()]
if len(res)==0:
return
super(production_client,self).create(cr,uid,vals,context=context)
else:
if new in res:
raise osv.except_osv('Error !', 'Le client existe
déjà!')

else:
return
super(production_client,self).create(cr,uid,vals,context=context)

Merci pour vos conseil surtout à Bruno qui me tire les oreilles merci
Bruno
Publicité
Poster une réponse
Anonyme