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

Bases de données Delphi Discussion :

Probleme avec une requete


Sujet :

Bases de données Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut Probleme avec une requete
    Voila j'ai une requete que j'aimerais simplifié pour l'accélérer mais je n'y arrive pas :

    adoquery1.SQL.Add('SELECT A.code_article, A.libelle_long, A.code_modele, P.prix_courant, R.libelle_rayon, F.libelle_famille');
    adoquery1.SQL.Add('FROM Article A, Prix_courant P, Rayon R,Famille F');
    adoquery1.SQL.Add('WHERE A.code_article = P.code_article');
    adoquery1.SQL.Add('AND A.circuitapproaffiche = ''S''');
    adoquery1.SQL.Add('AND A.status_article = ''AC''');
    adoquery1.SQL.Add('AND A.code_rayon = R.code_rayon');
    adoquery1.SQL.Add('AND A.code_rayon = F.code_rayon');
    adoquery1.SQL.Add('AND A.code_famille = F.code_famille');
    if combobox1.Text <> '' then
    adoquery1.SQL.Add('AND R.libelle_rayon = '+QuotedStr(combobox1.text+'%'));
    if combobox2.Text <> '' then
    adoquery1.SQL.Add('AND F.libelle_famille = '+QuotedStr(combobox2.text+'%'));
    adoquery1.SQL.Add('AND A.libelle_long = '+QuotedStr(edit3.Text+'%'));
    adoquery1.SQL.Add('AND A.libelle_long = %'+QuotedStr(edit2.Text+'%'));
    adoquery1.SQL.Add('ORDER BY '+colonne+' '+sens);
    ADOQuery1.Open;
    J'essai avec des jointure mais je me retrouve toujours avec un message d'erreur "Erreur de synthaxe de la clause FORM", j'ai pourant fais le tour des tutos mais je comprend pas

    Exemple d'une requete qui ne fonctionne pas :
    SELECT A.code_article, A.libelle_long, A.code_modele, P.prix_courant, R.libelle_rayon, F.libelle_famille
    FROM ARTICLE A
    JOIN PRIX_COURANT P
    ON A.CODE_ARTICLE = P.CODE_ARTICLE
    WHERE
    A.circuitapproaffiche = 'S'
    AND A.status_article = 'AC'
    AND A.libelle_long = '%texte%'
    ORDER BY A.libelle_long
    Merci de bien vouloir me donner un coup de main !

  2. #2
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Essaie comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT A.code_article_domaxel, A.libelle_long, A.code_modele, P.prix_courant, R.libelle_rayon, F.libelle_famille
    FROM ARTICLE A
    INNER JOIN PRIX_COURANT P
    ON A.CODE_ARTICLE = P.CODE_ARTICLE
    WHERE
    A.circuitapproaffiche = 'S'
    AND A.status_article = 'AC'
    AND A.libelle_long = '%texte%'
    ORDER BY A.libelle_long
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Maintenant j'ai un nouveau message d'erreur:
    Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Quel base de données utilises tu ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Database (Access 97 file format)

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Quand tu as configuré ton AdoConnection, tu as bien mis Microsoft Jet 4.0 OLE DB Provider comme fournisseur ?

    Quel windows utilises tu ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Quand tu as configuré ton AdoConnection, tu as bien mis Microsoft Jet 4.0 OLE DB Provider comme fournisseur ?

    Quel windows utilises tu ?
    Oui c'est bien ca, et j'utilise windows XP familial

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Est ce que la requete fonctionne directement dans Access97 ?
    Es tu obligé d'utiliser Access97 ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Est ce que la requete fonctionne directement dans Access97 ?
    Es tu obligé d'utiliser Access97 ?
    Oui je suis obligé, je ne peu pas modifier la base de donnee

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Poisson Rouge
    Oui je suis obligé, je ne peu pas modifier la base de donnee
    Et pour la première question ? (Fonctionnement direct dans Access ?)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Et pour la première question ? (Fonctionnement direct dans Access ?)
    Je peu pas dire, j'ai pas Access

    Avec un Adocommand, j'obtient "Erreur de synthaxe dans la clause FROM"

    Voici le code
    SELECT *
    FROM Article A
    JOIN Prix_courant P
    ON A.code_article = P.code_article
    JOIN Rayon R
    ON A.code_rayon = R.code_rayon
    JOIN Famille F
    ON A.code_famille = F.code_famille
    WHERE A.libelle_long LIKE 'brouette%'
    ORDER BY A.libelle_long
    J'vois pas où est l'ereur.

  12. #12
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT *
    FROM Article A
    INNER JOIN Prix_courant P
    ON A.code_article = P.code_article
    INNER JOIN Rayon R
    ON A.code_rayon = R.code_rayon
    INNER JOIN Famille F
    ON A.code_famille = F.code_famille
    WHERE A.libelle_long LIKE 'brouette%'
    ORDER BY A.libelle_long
    Il te manque INNER devant JOIN, a moins que tu veuilles faire une jointure gauche (LEFT) ou droite (RIGHT).
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT *
    FROM Article A
    INNER JOIN Prix_courant P
    ON A.code_article = P.code_article
    INNER JOIN Rayon R
    ON A.code_rayon = R.code_rayon
    INNER JOIN Famille F
    ON A.code_famille = F.code_famille
    WHERE A.libelle_long LIKE 'brouette%'
    ORDER BY A.libelle_long
    Il te manque INNER devant JOIN, a moins que tu veuilles faire une jointure gauche (LEFT) ou droite (RIGHT).
    Avec INNER devant j'ai toujours le même message d'erreur :
    Une opération OLE-DB en plusieurs étapes a généré des erreurs. Vérifiez chaque valeur d'état OLE-DB disponible

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Poisson Rouge
    Avec INNER devant j'ai toujours le même message d'erreur :

    Non pardon c'est pas le même, maintenant c'est

    Erreur de synthaxe (opérateur absent) dans l'expression A.code_article = P.code_article
    INNER JOIN Rayon R
    ON A.code_rayon = R.code_rayon
    INNER JOIN Famille F
    ON A.code_famille = F.code_famille

  15. #15
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Sur le site microsoft va récupérer le Jet Engine et Les MDAC, installes les deux et retente une requete.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Sur le site microsoft va récupérer le Jet Engine et Les MDAC, installes les deux et retente une requete.
    J'viens de réinstaller, redémarrer mais toujours pareil !!

  17. #17
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Peux tu mettre ta table (compacter) en pieces jointe sur le forum ?

    Sinon quel version de delphi utilises tu ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Peux tu mettre ta table (compacter) en pieces jointe sur le forum ?

    Sinon quel version de delphi utilises tu ?
    Non peu pas elle fait plus de 200mo

    Sinon c'est bizar c'est que lorsque je met que ca dans le code, il fonctionne
    SELECT *
    FROM Article
    INNER JOIN Prix_Courant
    ON Article.Code_article = Prix_Courant.Code_article
    WHERE Article.libelle_long LIKE 'brouette%'
    ORDER BY Article.libelle_long
    alors qu'avec ca, il ne fontionne pas. Manque t-il quelque chose ?
    SELECT *
    FROM Article
    INNER JOIN Prix_Courant
    ON Article.Code_article = Prix_Courant.Code_article
    INNER JOIN rayon
    ON Article.Code_rayon = rayon.Code_rayon
    INNER JOIN famille
    ON Article.code_famille = famille.code_famille
    WHERE Article.libelle_long LIKE 'brouette%'
    ORDER BY Article.libelle_long

  19. #19
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Essai comme çà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT *
    FROM ((Article as A
    INNER JOIN Prix_courant as P
    ON A.code_article = P.code_article)
    INNER JOIN Rayon as R
    ON A.code_rayon = R.code_rayon)
    INNER JOIN Famille as F
    ON A.code_famille = F.code_famille
    WHERE A.libelle_long LIKE 'brouette%'
    ORDER BY A.libelle_long

    Il est peut être nécessaire de mettre les () et les as pour correctement mettre l'alias de nom.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 47
    Points : 29
    Points
    29
    Par défaut
    Citation Envoyé par Malatar
    Essai comme çà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SELECT *
    FROM ((Article as A
    INNER JOIN Prix_courant as P
    ON A.code_article = P.code_article)
    INNER JOIN Rayon as R
    ON A.code_rayon = R.code_rayon)
    INNER JOIN Famille as F
    ON A.code_famille = F.code_famille
    WHERE A.libelle_long LIKE 'brouette%'
    ORDER BY A.libelle_long

    Il est peut être nécessaire de mettre les () et les as pour correctement mettre l'alias de nom.
    Ca marche !! c'etait bien les () le probleme.

    Merci bcp pour ton aide Malatar

Discussions similaires

  1. Probleme avec une requete mise a jour
    Par mael94420 dans le forum ASP
    Réponses: 2
    Dernier message: 08/03/2006, 21h56
  2. Probleme avec une requete de selection
    Par vaness59199 dans le forum ASP
    Réponses: 2
    Dernier message: 03/10/2005, 23h42
  3. [weblogic 8.1][JDBC] Probleme avec une requete
    Par Sniper37 dans le forum Weblogic
    Réponses: 3
    Dernier message: 08/04/2005, 12h11
  4. probleme avec une requete full text
    Par maxxou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 07/03/2005, 18h20
  5. au secour probleme avec une requete...
    Par soufiane59 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/09/2003, 11h28

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