Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
J'ai un soucis avec la requête SQL dynamique suivante :
String ls_sql ls_sql = "select col1 into :sle_6.text from etman where trim(col5) = 'demo' " EXECUTE IMMEDIATE :ls_sql using sqlca;
Lorsque je l'exécute il m'affiche le message "LES VARIABLES NE SONT PAS LIÉES"
Par contre, lorsque je l'écrit intégralement sans utiliser le code dynamique ça marche parfaitement
select col1 into :sle_6.text
from etman
where trim(col5) = 'demo'
using sqlca;
Pourquoi le message d'erreur : "LES VARIABLES NE SONT PAS LIÉES" apparaît toujours lorsque je veux faire du sql dynamique ?
Est ce que quelqu'un a déjà eu à travailler avec cela correctement?
PB 11.1 Build 8123
Oracle10g
Windows XPSP2
Hors ligne
Bonjour,
Ta requête est un "EXECUTE IMMEDIATE", autrement dit selon la terminologie PB du SQL dynamique format 1. Or tu demandes l'affectation d'une variable en sortie, il te faut utiliser le format 3.
Recherche "Dynamic SQL Format 3" dans l'aide PB, tu trouveras sans doute ton bonheur. En gros, il te faut utiliser un objet annexe qui va lier ta variable PB et ta colonne résultat.
Hors ligne
Et si tu passais par un datastore à qui tu injectes ta requête.
C'est bien mieux que les requêtes dynamiques.
Hors ligne