Bonjour tout le monde,
(je ne sais pas si il y a une section presentation, mais sinon moi c’est Thibault )
je fais quelques petit dveloppement mais l j’ai un probleme que je n’arrive pas rsoudre, du coup je me permet de me tourner vers la communaut pour tenter de trouver un nouvelle approche ma problmatique.
[code]
try
selectedArticle= Sage.SQLSelect("SELECT F_ARTICLE.AR_REF as ref FROM F_ARTICLE LEFT OUTER JOIN F_ARTSTOCK ON F_ARTICLE.AR_REF=F_ARTSTOCK.AR_Ref WHERE AR_Sommeil=0 AND F_ARTSTOCK.AS_QteSto=0 AND F_ARTSTOCK.DE_NO=1 ")
if selectedArticle<>NIL then
while not selectedArticle.EOF
Dim ref as string= selectedArticle.Field("ref").StringValue
dim selectedCommand as Recordset= Sage.SQLSelect("SELECT Count(DO_DATE) as compteur FROM F_DOCLIGNE WHERE AR_REF='"+ref+"' AND DO_DATE>{d '"+SelectedDate+"'} AND DO_DOMAINE=0 ")
if selectedCommand <>NIL then
dim compteur as Integer= selectedCommand.Field("compteur").IntegerValue
if compteur=0 then
try
dim UpdateSommeil as string="UPDATE F_ARTICLE SET AR_SOMMEIL=1 WHERE AR_REF='"+ref+"' "
Sage.SQLExecute(UpdateSommeil) //---> Ligne 1
app.mCompteur=app.mCompteur+1
MessageBox(ref+" "+compteur.ToString+EndOfLine+EndOfLine+UpdateSommeil) //--> ligne 2
Catch error As DatabaseException
MessageBox("DB Error: " + error.Message)
catch errnil as NilObjectException
MessageBox("Nil2: " + errnil.Message)
end try
end if
end if
selectedArticle.movenext
wend
MessageBox("Mise jour termine"+EndOfLine+EndOfLine+app.mCompteur.ToString+" article(s) mis en sommeil")
end if
selectedArticle.close
Catch error As DatabaseException
MessageBox("DB Error: " + error.Message)
catch errnil as NilObjectException
MessageBox("Nil Error: " + errnil.Message)
end try[/code]
Les messageBox sont l pour m’aider trouver mon probleme et ne font pas parti du code final prvu hein
J’ai une RecordSet qui me renvoie 13 enregistrement dans mes tests. J’ai la meme problmatique avec RowSet et une boucle “for each … as …”, j’ai essay.
Quand je commente la ligne 1, la ligne 2 est bien excut 13 fois (au passage avec la bonne requte SQL qui s’affiche)
Par contre si je laisse la ligne 1 et que le SQLexecute se lance, il s’arrte 1 et ne fais pas les 13 enregistrements qui seraient censer passer dans ma boucle…