"Erreur d'exécution '-2147217887 (80040e21)' : Une opération en plusieurs étapes

Signaler
Messages postés
1
Date d'inscription
vendredi 6 mars 2009
Statut
Membre
Dernière intervention
6 mars 2009
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

dans une application en VB6 reliée à une base Oracle via une connexion ADO, je déclare un recordset de la manière suivante :




Dim vRs As ADODB.Recordset
Dim vSQLTmp As String





qui va exécuter la requête suivante :





 vSQLTmp =
"SELECT ANE_AN, ANE_COD, ANP_COD, ANS_COD,
COUNT(ANS_COD) OVER(PARTITION BY ANE_AN, ANE_COD, ANP_COD) AS NBSEQ,
SSQ_FLG, SQ_FLG
FROM W_ANIM_CDE_FR"

J'ouvre un recordset qui exécute la requête ci dessus dont les propriétés sont :

CursorLocation=adUseClient, CursorType=adOpenStatic, LockType=adLockBatchOptimistic

J'exécute par la suite le bloc de code suivant :

Do Until vRs.EOF
[...]




vRs!SSQ_FLG = "1"



[...]
Loop




vRs.close
vRs.UpdateBatch


End Sub




Quand on arrive sur l'instruction d'affectation vRs!SSQ_FLG = "1", l'erreur suivante se produit :


Erreur d'exécution '-2147217887 (80040e21)' :
Une opération en plusieurs étapes a généré des erreurs. Vérifier chaque valeur d'état.






Le champ SSQ_FLG est de type varchar2 d'une taille de 1 octet.




Lorsque je passe par une requête UPDATE pour mettre à jour SSQ_FLG, ça marche, mais du coup je perds l'avantage de la mise à jour par lot du UpdateBatch( ).

Serait ce à cause de la fonction d'aggrégation SELECT COUNT( ) propre à ORACLE, ou bien à cause du paramétrage de mon recordset ?

Une aide de votre part serait la bienvenue



Merci

1 réponse

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
tu as bien mis un appel à la méthode Update de ton Recordset ?