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

WD Transformer des vues paramétrées en requêtes ?

Discussion dans 'Windev' créé par DevThai, Août 30, 2022.

  1. DevThai

    DevThai New Member

    Inscrit:
    Août 28, 2022
    Messages:
    28
    J'aime reçus:
    9
    Bonjour,
    Sous windev, j'ai toujours travaillé avec des vues. C'était très rapide et surtout très souple à créer.
    Avec mon passage à la V27, je dois adapter quelques applis pour transformer des vues "paramétrables" en requêtes.

    ////// VOILA UN EXEMPLE DE MON CODE POUR CREER DES VUES ///////
    Dans ce code, les différents critères d'extraction des données (Param_1,etc..) sont optionnels (au choix de l'utilisateur)
    S'ils sont à VRAI ou renseignés, ils sont intégrés au filtre d'extraction, sinon, on n'en tient pas compte du tout.

    //--------------
    //--- VARIABLES
    //--------------
    xFiltre est une chaine = ""
    NB_ITEMS est un entier = 0

    //------------------------------------------------
    //--- SELECTION DE LA RUBRIQUE DE TRI POUR LA VUE
    //------------------------------------------------
    SELON SELECTEUR_Rubrique
    CAS 1 : xTRi = "RUB1"
    CAS 2 : xTRi = "RUB2"
    FIN

    //-----------------------------------
    //--- CREATION DU FILTRE POUR LA VUE
    //-----------------------------------

    //--- AMORCE DU FILTRE = TOUS LES ENREGISTREMENTS
    xFiltre = "V_ID>0"

    //--- AJOUT DES CRITERES AU FILTRE, SI ILS SONT SELECTIONNES
    SI Param_1 = Vrai ALORS xFiltre+=" et V_CHAMP1=''"
    SI Param_2 <> "" ALORS xFiltre+=" et V_CHAMP2=''"
    SI Param_2 > 0 ALORS xFiltre+=" et V_CHAMP3=''"
    SI Param_4 = Vrai ALORS xFiltre+=" et V_CHAMP4=''"

    //--- CREATION DE LA VUE
    HcreeVue(MaVue,MonFichierHF,"*",xTRi,xFiltre)


    Je souhaite reproduire la même chose avec le requêtage.
    Je sais construire une requête paramétrée avec l'éditeur de requête ou une requête SQL

    Est-ce que c'est possible ?
    Quelle technique sera la meilleure : Souplesse, rapidité d'extraction des données ?
     
    Tags:
  2. Dandypunk

    Dandypunk Well-Known Member

    Inscrit:
    Nov 28, 2019
    Messages:
    607
    J'aime reçus:
    332
    Bonjour,
    Une solution est d'utiliser ChaineConstruit associé à HExécuteRequêteSQL.
    Un truc du style
    Code (Windev):
    REQ_MaRequête est Source de données
    saCodeMaRequête est chaine
    saFiltre est chaine
    saTri est chaine

    saCode=[
    SELECT
         *
    FROM
         MaTable
    WHERE
         %1
    ORDER BY
         %2

    ]

    SELON SELECTEUR_Rubrique
         CAS 1 :
              saTRi = "RUB1"
         CAS 2 :
              saTRi = "RUB2"
    FIN

    //Idem pour la condition

    saCodeMaRequête=

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (saCodeMarequête,saFiltre,saTri)

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

    (REQ_MaRequête,saCodeMaRequête
     
    Note la coloration syntaxique m'a boufé des caractères dans le code de la requête:
    En ligne 2 il faut lire *
    et lire "%1" au lieu de "1"
     
  3. DevThai

    DevThai New Member

    Inscrit:
    Août 28, 2022
    Messages:
    28
    J'aime reçus:
    9
    Merci encore une fois...
    Donc, la solution consiste à passer par une Requête SQL. On écrit d'abord sa requête SQL en tant que chaine de caractères et on l'envoie ensuite avec le HexecuteRequete

    Je ne comprends vraiment pas cette sale habitude qu'on les développeurs d'outils de développement ou de langages de prog, de régresser ainsi.
    Je viens de recoder toute une appli "VUES" en "REQUETES", et on ne gagne vraiment pas au change. Le gain en vitesse est ridicule, la perte en souplesse pour l'utilisateur final est importante.

    Bonne journée en France
     
  4. DevThai

    DevThai New Member

    Inscrit:
    Août 28, 2022
    Messages:
    28
    J'aime reçus:
    9
    Je viens de tester les 3 méthodes d'extraction de données sur environ 6000 enregistrements en windev 27
    Avec une VUE "à l'ancienne" , j'ai un temps de latence d'affichage des images dans la liste image d'environ 7 secondes
    Avec une Requete SQL (celle que tu m'as suggéré), le temps de latence d'affichage est toujours là mais tombe à 5 secondes
    Avec une requête paramétrée, il n'y a aucun temps de latence à l'affichage mais la construction de la requête est plus restrictive
     
  5. NinjaCoder

    NinjaCoder New Member

    Inscrit:
    Oct 22, 2019
    Messages:
    24
    J'aime reçus:
    5
    C'est logique, la règle numéro 1 est de toujours récupérer uniquement ce dont on a besoin. 6000 enregistrement en même temps je ne pense pas que tu puisses tous les afficher en même temps.
     
    WX1331 et Gemini1961 aiment ça.

Partager cette page

Chargement...