Salut tout le monde, Je reviens vers sur une question qui est plus tôt simple mais je n'arrive pas à comprendre comment et dans quel cas ça marche. J'execute une requette SQL comme suit : MaReq est une Source de Données sSQL est une chaîne = "SELECT * FROM Caisse WHERE date = " + DateSys() SI HExécuteRequêteSQL(MaReq, hRequêteDéfaut, sSQL) ALORS FIN Afin de parcourir les résultats retournés par cette requette, comment je dois faire. ? - POUR TOUT Mareq - HLitPremier(Mareq) et HLitSuivant il existe plusieurs façon de faire mais apparemment dès fois ça fontionne et parfois non, et je n'arrive pas à distinguer la différence. Je vous remerci d'avance par votre retour
Bonsoir Je n'ai jamais eu de problêmes de ce type. Que donne comme résultat ? SI HExécuteRequêteSQL .....
Si la requête fonctionne tu rentres dans le boucle via le "POUR TOUT", dans le cas contraire, pas... qu'est-ce qui n'est pas clair pour toi ? Voici un exemple tout simple : [windev] sdX est une source de données SI PAS HExécuteRequêteSQL(sdX, hRequêteDéfaut, "SELECT NomClient FROM Clients") ALORS Erreur(HErreurInfo()) SINON // La requête fonctionne ... // Est-ce qu'il existe des enregistrements ? SI HNbEnr(sdX) > 0 ALORS // Parcourir le Recordset POUR TOUT sdX TRACE("Nom du client : " + sdX.NomClient) FIN FIN FIN[/windev]
Greetings. I suggest you try the method below. I still use it and it works perfectly. Example: nRoomNumber is int = 100 sSQL is SQL Query = [ SELECT * FROM Room_Reservation WHERE Reservation_Status IN (1, 2) AND Room_Number = {pRoomNumber} ORDER BY Room_Number ASC, Date_of_Arrival ASC, Date_of_Departure ASC ] sSQL.pRoomNumber = nRoomNumber HExecuteQuery(sSQL) FOR ALL sSQL Info(sSQL.Room_Number) END