Quoi, tu ne connais pas PB ? Va falloir parcourir tout le forum alors !

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