Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Eviter les doublon

12 réponses
Avatar
Boa Guy Serge
Bonjour
Je n'arrive pas =E0 =E9viter les enregistrement double(c'est =E0 dire
enregistrer deux fois le m=EAme enregistrement)
Voici mon code

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

10 réponses

1 2
Avatar
Jonathan Ballet
Le Tue, 15 Jul 2008 02:43:33 -0700 (PDT), Boa Guy Serge m> a écrit :

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
Avatar
Mihamina Rakotomandimby (R12y)
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.
Avatar
Mihamina Rakotomandimby (R12y)
Boa Guy Serge wrote:
if dernier == clt.append() :



Tu compare quoi *exactement*, là?
Avatar
Boa Guy Serge
On 16 juil, 06:57, "Mihamina Rakotomandimby (R12y)"
wrote:
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
Avatar
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.
Avatar
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.
Avatar
bruno.desthuilliers
On 16 juil, 15:47, "Mihamina Rakotomandimby (R12y)"
wrote:
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.
Avatar
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
Avatar
JB
a écrit :
On 16 juil, 15:47, "Mihamina Rakotomandimby (R12y)"
wrote:
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
Avatar
Boa Guy Serge
On 17 juil, 09:21, "Méta-MCI (MVP)"
wrote:
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
1 2