IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Requêtes SQL Directe sur base oracle


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut Requêtes SQL Directe sur base oracle
    Bonjour a tous,

    Je rencontre un souci avec WD23. Je crée une requête SQL (avec la fonction nouveau, requête, code SQL, direct) sur une base oracle.
    Voici le code:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DESIGNATION, PRIXVENTE, DATEDERNVTE, QUANTITE, CODECIP, CODECIP7 FROM T_PRODUIT a, T_PRODUITGEOGRAPHIQUE b
    WHERE a.T_PRODUIT_ID = b.T_PRODUIT_ID
    AND b.QUANTITE > 0
    AND a.D_DEL IS NULL
    AND a.ID_DEL IS NULL
    AND a.T_PRESTATION_ID IN (4,5,6,7,46) /* 4 =PH7 5=PH1 6=PH4 7=PHN 46=PH2 */
    AND a.PRIXVENTE > 50
    AND a.DATEDERNVTE < TO_DATE('01/07/2018', 'DD/MM/YYYY')
    ORDER BY QUANTITE DESC

    En testant la requête, cela marche parfaitement.
    Quand je veux mettre un champ table et le faire pointer vers cette requête, (en cliquant sur utiliser une requête existante), la requête ne figure pas dans la liste…..
    Si je lui dis de créer une nouvelle requête, il me sort l'éditeur de requête mais dans ce cas le code est:
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    SELECT 
      T_PRODUIT.CODECIP AS CODECIP,  
      T_PRODUIT.DESIGNATION AS DESIGNATION,  
      T_PRODUIT.PRIXVENTE AS PRIXVENTE,  
      T_PRODUIT.DATEDERNVTE AS DATEDERNVTE,  
      T_PRODUIT.CODECIP7 AS CODECIP7,  
      T_PRODUITGEOGRAPHIQUE.QUANTITE AS QUANTITE
    FROM 
      T_PRODUIT,  
      T_PRODUITGEOGRAPHIQUE
    WHERE 
      T_PRODUIT.T_PRODUIT_ID = T_PRODUITGEOGRAPHIQUE.T_PRODUIT_ID
      AND
      (
        T_PRODUIT.ID_DEL IS NULL 
        AND  T_PRODUIT.D_DEL IS NULL 
        AND  T_PRODUIT.T_PRESTATION_ID IN (4, 5, 6, 7, 46) 
        AND  T_PRODUIT.DATEDERNVTE < '20180701000000'
        AND  T_PRODUIT.PRIXVENTE > 50
        AND  T_PRODUITGEOGRAPHIQUE.QUANTITE > 0
      )
    ORDER BY 
      QUANTITE DESC,  
      PRIXVENTE DESC
    Il n'utilise pas la fonction TO_DATE pourtant nécessaire en oracle. La requête me renvoie effectivement rien du tout….

    J'ai beau chercher partout, je bloque.

    Une idée?

    Merci a tous

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    1 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 043
    Par défaut
    Bonjour,

    Il faut que tu exécutes ta requête manuellement avec le paramètre hRequeteSansCorrection. Voir l'aide sur HexecuteRequête()

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut
    Après plein de tentatives, j'arrive a utiliser ma requête en code SQL direct.
    Sauf que maintenant je voudrais pouvoir passer en paramètre le prix de vente et la date.
    Pour le prix de vente, pas de souci, mais pour la date je n'arrive pas à passer en paramètres:

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DESIGNATION, PRIXVENTE, DATEDERNVTE, QUANTITE, CODECIP, CODECIP7 FROM T_PRODUIT a, T_PRODUITGEOGRAPHIQUE b
    WHERE a.T_PRODUIT_ID = b.T_PRODUIT_ID
    AND b.QUANTITE > 0
    AND a.D_DEL IS NULL
    AND a.ID_DEL IS NULL
    AND a.T_PRESTATION_ID IN (4,5,6,7,46)
    AND a.PRIXVENTE > {ParamPrixVente}
    AND a.DATEDERNVTE < {ParamDDV}
    ORDER BY QUANTITE DESC
    Si je dis que le paramètre ParamDDV est une chaine = "'TO_DATE ('01/07/2018', 'DD/MM/AAAA')"
    Ça ne marche pas,
    Si ma requête à pour code
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT DESIGNATION, PRIXVENTE, DATEDERNVTE, QUANTITE, CODECIP, CODECIP7 FROM T_PRODUIT a, T_PRODUITGEOGRAPHIQUE b
    WHERE a.T_PRODUIT_ID = b.T_PRODUIT_ID
    AND b.QUANTITE > 0
    AND a.D_DEL IS NULL
    AND a.ID_DEL IS NULL
    AND a.T_PRESTATION_ID IN (4,5,6,7,46)
    AND a.PRIXVENTE > {ParamPrixVente}
    AND a.DATEDERNVTE < TO_DATE ('{ParamDDV}', 'DD/MM/AAAA')
    ORDER BY QUANTITE DESC
    Alors le paramètre ParamDDV n'est pas reconnu et non initialisé.
    Comment faire pour passer une date en paramètre sans passer par l’éditeur de requête qui ne gère par TO_DATE (ou je sais pas faire)

    Merci :-)

  4. #4
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 226
    Par défaut
    Oracle parle anglais... ou je devrais plutôt dire que Windev est le seul outil qui parle français.
    Donc le bon paramètre pour to_date, ce n'est pas 'DD/MM/AAAA' mais 'DD/MM/YYYY'

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut
    Oui tu as raison j'ai fais un mauvais copier coller… J'ai effectivement utilisé le TO_DATE comme tu l'indiques.
    Mais ca ne change pas le fait que je n'arrive pas a passer le paramètre….et l'"editeur de requete n'utilise pas to date

  6. #6
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 226
    Par défaut
    As-tu essayé {ParamDDV} au lieu de '{ParamDDV}' ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/05/2016, 13h10
  2. [XL-2013] Requête SQL UPDATE sur base de données SQL Server
    Par TheChovix dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/11/2014, 14h58
  3. Requête sur base Oracle + fichier Excel ou texte
    Par Invité dans le forum Outils
    Réponses: 2
    Dernier message: 31/01/2011, 18h28
  4. Requete sql sur base oracle
    Par kiro4 dans le forum SQL
    Réponses: 4
    Dernier message: 18/03/2009, 08h59
  5. Réponses: 3
    Dernier message: 17/05/2004, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo