[Windev11][Oracle] HExecuteRequeteSQL("Update ...") ne marche pas
5 réponses
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
----------------------------------
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 ....
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 ...
On 14 déc, 14:34, "Bruno Wrk" <perso...@microsoft.com> 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 ...
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 ...
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
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.