Répétez apres moi :J'aime PBAdonf. J'aime PBAdonf. J'aime PBAdonf.

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 10-01-2007 10:30:59

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

[RESOLU] UPDATE ... WHERE x IN (:MaVariable)

Bonjour,
Sous PB 10.1, je cherche à faire une requête à la volée dans une fonction :

Code: pb

UPDATE MaTable
SET MonChamp = MaNouvelleValeur
WHERE MonIndice IN (:MaVariable)

MaVariable est de type String et contient la liste de mes indices séparés par des ",". J'ai bien tenté de prendre un type Integer[] mais le compilateur refuse

Malheureusement en sortie, le SQLCODE vaut tjs 0 mais ma base de données n'a pas été modifié.

Merci encore poura la réponse

Hors ligne

 

#2 10-01-2007 11:03:32

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

tu as essayé de faire en dur pour voir si ca fonctionnait ?

Code: sql

UPDATE MaTable
SET MonChamp = MaNouvelleValeur
WHERE MonIndice IN ("T","Q","S")  ;



Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#3 10-01-2007 12:47:32

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

oui bien sur...  j'ai trouvé une solution :

Code: pb

MaString = "Update MaTable Set MonChamp = " + String(MaNouvelleValeur) &
+ " WHERE MonIndice IN (" + MaVariable + ")"
EXECUTE IMEDIATE :MaString;


Et ca marche ^^ Etrange pourtant que ma première mouture ne fonctionne que pour une seule valeur dans le "IN" ensuite pour 2 ca ne fait rien, pas d'update pas d'erreur :|

Hors ligne

 

#4 10-01-2007 12:49:30

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

Bonjour,

il me semble que ce n'est pas possible de faire un IN ( :tableau ), à confimer.

Sinon il y a la solution de construire dynamiquement la requête et de l'exécuter, par exemple :

Code: pb

ls_sql = "UPDATE MaTable SET MonChamp = MaNouvelleValeur WHERE MonIndice IN ( "
         + maVariable + ")"

EXECUTE IMMEDIATE :ls_sql ;

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 10-01-2007 12:50:28

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

Oups, un poil trop lent


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#6 10-01-2007 12:54:11

pick ouic  
La bourse ou la vie ^^
Award: gearotter
Lieu: Massy-Verrières
Date d'inscription: 29-05-2006
Messages: 4658
Pépites: 942
Banque: 2,147,483,647
Site web

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

oky doky , tout est bien qui se finit bien !

et merci à tous !


Connaitre son ignorance est une grande part de la connaissance.
http://animegifs.free.fr/anime/mazinger/mazinger.gif

Hors ligne

 

#7 10-01-2007 16:20:06

aubierf  
Membre Geek
Lieu: Genève
Date d'inscription: 14-12-2006
Messages: 32
Pépites: 114
Banque: 0

Re: [RESOLU] UPDATE ... WHERE x IN (:MaVariable)

Merci erasorz ^^ à 2mn pres ;)
Merci Pick ouic ;)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22