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

WD Limitations SQL sous WD23 ?

Discussion dans 'Windev' créé par VBidolet, Nov 12, 2020.

  1. VBidolet

    VBidolet New Member

    Inscrit:
    Nov 12, 2020
    Messages:
    4
    J'aime reçus:
    0
    Bonjour à tous.

    Je souhaite effectuer une requête sur ma base HFSQL afin de calculer le nombre de PV pour une visite chez un client. Il y a plusieurs types de PV possibles, répartis dans plusieurs tables donc.

    Qu'à cela ne tienne, je crée donc la requête suivante :
    Code (Text):
    SELECT (
    (SELECT COUNT(*) FROM PVVisite WHERE PVVisite.CTCLEUNIK = {clecontrat} AND PVVisite.VICLEUNIK = {clevisite} AND PVVisite.NumVisite = {numvisite})+
    (SELECT COUNT(*) FROM PVQ7 WHERE PVQ7.CTCLEUNIK = {clecontrat} AND PVQ7.VICLEUNIK = {clevisite} AND PVQ7.NumVisite = {numvisite})+
    (SELECT COUNT(*) FROM PVQ13 WHERE PVQ13.CTCLEUNIK = {clecontrat} AND PVQ13.VICLEUNIK = {clevisite} AND PVQ13.NumVisite = {numvisite})+
    (SELECT COUNT(*) FROM GammeControle WHERE GammeControle.CTCLEUNIK = {clecontrat} AND GammeControle.VICLEUNIK = {clevisite} AND GammeControle.NumVisite = {numvisite})+
    (SELECT COUNT(*) FROM PVAttachementEntretien WHERE PVAttachementEntretien.CTCLEUNIK = {clecontrat} AND PVAttachementEntretien.VICLEUNIK = {clevisite} )
    ) AS total
    Malheureusement lorsque je teste la requête j'obtiens ce message fort de sens et de profondeur :[​IMG]

    Je teste donc ma requête ailleurs. J'utilise le logiciel OUTILS_SQL (

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

    plus efficace que leur centre de contrôle si vous voulez mon avis) et elle fonctionne comme attendu (c'est à dire : bien).

    Je tente un dernier essai depuis le centre de contrôle et là, la douche froide : "Aucune analyse n'est ouverte et le fichier <PVVisite> n'a pas été décrit.". Que la base de données elle-même me réponde cela me semble un peu fort de café.

    Si je manipule la requête pour afficher chaque COUNT dans une colonne différente néanmoins elle fonctionne sous le centre de contrôle mais toujours pas depuis le projet lui-même.

    Me voilà donc bloqué. Je doute que l'analyse soit en cause car elle est bien définie dans mon projet et à jour (et j'ai pleins de requêtes qui fonctionnent comme il faut). La seule réelle nouveauté est qu'à ma connaissance il s'agit de la première à utiliser des sous-requêtes (j'ai récupéré la charge du projet il y a deux mois). S'agit-il d'une limitation au SQL dans l'environnement windev ? Pourquoi un logiciel tiers arrive-t-il à exécuter cette requête mais pas windev lui-même ? Quelqu'un a-t-il déjà rencontré un problème du genre ?

    Merci d'avance pour votre aide.
     
  2. Hartyshow

    Hartyshow Member

    Inscrit:
    Août 10, 2018
    Messages:
    86
    J'aime reçus:
    34
    Bonjour,

    Si vous avez des connexions définies, vérifiez les. Synchronisez les structures des tables de votre analyse avec les fichiers de références.
     
  3. VBidolet

    VBidolet New Member

    Inscrit:
    Nov 12, 2020
    Messages:
    4
    J'aime reçus:
    0
    Bonjour Hartyshow et merci de ta réactivité.
    ma BDD est à jour vis à vis de l'analyse de mon projet. Je teste ma requête séparément du code donc sans définition de connexion. Cela fonctionne très bien pour toutes les autres requêtes.
     
  4. commun

    commun Active Member
    MEMBRE WX

    Inscrit:
    Jan 1, 2018
    Messages:
    226
    J'aime reçus:
    111
    salut
    ca m'est deja arrivé, j'ai outrepassé en utilisant hexecuterequetesql et passant le code sql dans une chaine.
     
  5. VBidolet

    VBidolet New Member

    Inscrit:
    Nov 12, 2020
    Messages:
    4
    J'aime reçus:
    0
    Je me suis créé une petite fenêtre pour tester, même en chaîne elle bloque (mais des plus simples fonctionnent donc le code est bon).

    J'ai voulu essayer en utilisant l'assistant de création de requête mais je ne comprends pas vraiment comment il manipule les champs COUNT et c'est une sinécure à remplir avec autant d'informations.
     
  6. VBidolet

    VBidolet New Member

    Inscrit:
    Nov 12, 2020
    Messages:
    4
    J'aime reçus:
    0
    Alors j'ai réussi à exécuter ma requête dans l'environnement windev ! J'ai dû pour ça jouer avec les options de connexions de la méthode HexécuteRequête :
    [windev]cnxToDatabase est une Connexion
    cnxToDatabase..Utilisateur=xxx
    cnxToDatabase..MotDePasse=yyy
    cnxToDatabase..Serveur=zzz
    cnxToDatabase..BaseDeDonnées=www
    cnxToDatabase..Provider=hAccèsHFClientServeur
    cnxToDatabase..Accès=hOLecture
    cnxToDatabase..OptionsCurseur=hCurseurClient

    HOuvreConnexion(cnxToDatabase)
    //REQ_ComptaTotalPV est la requête en question
    HExécuteRequête(REQ_CompteTotalPV, cnxToDatabase, hRequêteSansCorrectionHF,CT.CTCLEUNIK,Visite.VICLEUNIK,1)
    HLitPremier(REQ_CompteTotalPV)[/windev]

    hRequêteSansCorrectionHF permet de faire passer la requête sans en vérifier la forme. néanmoins la FAQ parle de champ complété par des espaces ou non. Je doute d'être dans ce cas de figure mais eh, ça marche.
     

Partager cette page

Chargement...