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

[Windev11][Oracle] HExecuteRequeteSQL("Update ...") ne marche pas

5 réponses
Avatar
Loko
Bonjour

Je voudrais savoir pourquoi le code suivant ne m'=E9ffectue pas la
modification demand=E9e et ne g=E9n=E8re pas d'erreur.

---------------------
Req_source est une Source de Donn=E9es
POUR i=3D1 A TABLE_LIGBE..Occurrence
SI TableR=E9cup=E8reFils(TABLE_LIGBE,i,taPremier)=3D-1 ALORS
HEx=E9cuteRequ=EAteSQL(Req_source, hRequ=EAteD=E9faut,
Cha=EEneConstruit("update LIGBE set ligbe_qte=3D%1 where ligbe_id=3D%2",
COL_QTE[i], COL_LIGBE_ID[i]))
SI HErreur() ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN
FIN
FIN
------------------

ou autre version qui ne marche pas non plus :
Req_source est une Source de Donn=E9es
POUR i=3D1 A TABLE_LIGBE..Occurrence
SI TableR=E9cup=E8reFils(TABLE_LIGBE,i,taPremier)=3D-1 ALORS
HEx=E9cuteRequ=EAteSQL(Req_source,
"WADVLAR@EXPLAR",hRequ=EAteSansCorrection, Cha=EEneConstruit("begin update
LIGBE set ligbe_qte=3D%1 where ligbe_id=3D%2; commit; end;", COL_QTE[i],
COL_LIGBE_ID[i]))
SI HErreur() ALORS
Erreur(HErreurInfo())
RENVOYER Faux
FIN
FIN
FIN
----------------------------------

Merci
Loko

5 réponses

Avatar
Bruno Wrk
HExécuteRequêteSQL(Req_source, hRequêteDéfaut,
ChaîneConstruit("update LIGBE set ligbe_qte=%1 where ligbe_id=%2",
COL_QTE[i], COL_LIGBE_ID[i]))

=> Essaies
HExécuteRequêteSQL(Req_source, hRequêteDéfaut,
ChaîneConstruit("update LIGBE set ligbe_qte='%1' where ligbe_id='%2'",
COL_QTE[i], COL_LIGBE_ID[i]))
Avatar
Bruno Wrk
Je précise que j'ai ajouté des ' ' autour des variables dans la requête. (
pas forcément clair dit comme je l'ai dit )
Avatar
Loko
On 14 déc, 14:32, "Bruno Wrk" wrote:
HExécuteRequêteSQL(Req_source, hRequêteDéfaut,
ChaîneConstruit("update LIGBE set ligbe_qte=%1 where ligbe_id=%2",
COL_QTE[i], COL_LIGBE_ID[i]))

=> Essaies
HExécuteRequêteSQL(Req_source, hRequêteDéfaut,
ChaîneConstruit("update LIGBE set ligbe_qte='%1' where ligbe_id='%2' ",
COL_QTE[i], COL_LIGBE_ID[i]))



Bonjour

Non ce n'est pas cela car ce sont bien des numériques et pas des
chaines.

Par contre je viens de trouver : ca marche en précisant
COL_QTE[i]..Valeur, COL_LIGBE_ID[i]..Valeur.

Je pensais que ..Valeur etait facultatif ? D'ailleurs le "trace"
m'affiche des valeurs correctes si je ne précise pas ....
Avatar
Loko
On 14 déc, 14:34, "Bruno Wrk" wrote:
Je précise que j'ai ajouté des ' ' autour des variables dans la requ ête. (
pas forcément clair dit comme je l'ai dit )



Ca ne marchait pas non plus comme ca. Mais je viens de trouver : il
faut que je précise :

HExécuteRequêteSQL(Req_source, hRequêteDéfaut,
ChaîneConstruit("update LIGBE set ligbe_qte=%1 where ligbe_id=%2",
COL_QTE[i]..Valeur, COL_LIGBE_ID[i]..Valeur))

Si je ne mets pas les ..Valeur ca ne marche pas. C'est pas un peu
étrange ? Ce sont des colonnes de tables mémoire déclarées en
numérique ...
Avatar
mat
Loko wrote:
Je pensais que ..Valeur etait facultatif ? D'ailleurs le "trace"
m'affiche des valeurs correctes si je ne précise pas ....




pour tester HExécuteRequêteSQL, la première chose que je vérifie est le
contenu la chaîne envoyé à la requête.

Salutations
Mat