1. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

Boucle sur le résultat d'une requette SQL

Discussion dans 'Windev' créé par Amiiinee77, Juin 19, 2025.

Tags:
  1. Amiiinee77

    Amiiinee77 Member

    Inscrit:
    Fev 10, 2024
    Messages:
    58
    J'aime reçus:
    0
    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
     
    Tags:
  2. Yusep

    Yusep Active Member
    DUMP TEAM

    Inscrit:
    Jan 3, 2018
    Messages:
    249
    J'aime reçus:
    171
    Bonsoir
    Je n'ai jamais eu de problêmes de ce type.
    Que donne comme résultat ?
    SI HExécuteRequêteSQL .....
     
    OliT apprécie ceci.
  3. OliT

    OliT New Member

    Inscrit:
    Juin 20, 2025
    Messages:
    2
    J'aime reçus:
    0
    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]
     
  4. Jackson

    Jackson Member

    Inscrit:
    Jan 19, 2018
    Messages:
    60
    J'aime reçus:
    26
    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
     

Partager cette page

Chargement...