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 :

Problème DBExpress et sous requêtes ???


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 11
    Points
    11
    Par défaut Problème DBExpress et sous requêtes ???
    Bonjour à tous,

    Je me permet de vous exposer mon problème, peut être que l'un d'entre vous l'a déjà rencontré ...
    Je travaille sous Delphi 7 (base SQL server 7) et je passe actuellement une application de BDE à DBExpress et je rencontre le problème suivant :

    J'utilise les composants DBExpress : SQlConnection et SQLQuery. Dans la propriété SQL du SQLQuery je place la requête :
    select * from table1 where ID_TYPE in ( select ID_TYPE from table1 where DELAI = :delai)

    (je sais que la requête est ridicule, il ne s'agit que d'un exemple).

    Le paramètre "delai" est déclaré de type Integer.
    Le passe de paramètre est correct :
    SQLquery.ParamByname('delai').asInteger := 30;

    Lorsque j'effectue la commande SQLQuery.open j'obtiens le message suivant :
    "Le projet XXXXX a provoqué une classe d'exception EDatabaseError avec le message 'SQL State : 42000, SQL Error code: 0 Erreur de syntaxe ou violation d'accès'".

    Je précise que ce type de requête fonctionne parfaitement avec le composant TQuery du BDE. Je prècise également que si l'on remplace la requête ci-desssus par la requête :
    select * from table1 where DELAI = :delai
    le programme ne génére pas d'erreur.

    Apparemment, il n'est pas possible de passer un paramètre à un sous-select d'une requête contenue dans le composant SQLQuery de DBexpress.

    Merci par avance pour votre aide.
    A bientôt

  2. #2
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    Bjr,
    Aurais-tu essayé avec EXISTS à la place de IN
    cela donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from table1 where ID_TYPE exists ( select ID_TYPE from table1 where DELAI = :delai)
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 11
    Points
    11
    Par défaut merci mais la question n'est pas là
    Merci pour ta réponse star mais en fait je ne veux pas faire fonctionner cette requête, je veux seulement savoir pourquoi le passage de paramètre ne fonctionne pas dans une requête composée d'un sous-select avec DBExpress.
    de plus il me semble que ta requête ne fonctionne pas, je crois que tu dois faire une jointure entre ta table "principale" et la table contenue dans le EXIST.

  4. #4
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 842
    Points : 983
    Points
    983
    Par défaut
    En effet, il y a un truc qui ne va pas, Oups!, autant pour moi.
    Sinon, je ne comprends pas pourquoi ta requête ne marcherait pas, elle me semble syntaxiquement correcte.
    As-tu essayé avec ADOQuery ou ADODataSet pour voir ?
    .
    Diviser c'est régner : United we stand, Divided we fall
    .

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 11
    Points
    11
    Par défaut
    Ma requête est syntaxiquement correcte, elle fonctionne parfaitement sous l'analyse de requêtes SQL. Le problème vient apararemment du passage de paramètre au composant SQLQuery lorsque celui ci contient une requête composé d'un sous-select.
    J'aimerai juste que quelqu'un ayant déjà rencontré ce problème m'indiquela marche à suivre ou me confirme que ce problème existe avec le composant SQLQuery de DBExpress et qu'il n'existe pas de solution.

    Merci pour ton aide star

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 11
    Points
    11
    Par défaut
    Bonjour,

    On dirait que ma question n'inspire personne. Est-ce que quelqu'un pourrait alors me donner son avis (les modérateurs du salon par exemple) sur cette question :
    Peut on envisager qu'il existe un "bug" sur les composants SQlQuery et SQLDataset (de BDExpress) lorqu'on les utilise pour effectuer des requêtes contenant des sous-selection (problème sur le passage de paramètres) ??
    J'aimerai avoir un avis avant de faire intervenir la hotline de borland.

    Merci d'avance

Discussions similaires

  1. [2008] Problème convert et sous requête
    Par Batoche dans le forum Développement
    Réponses: 7
    Dernier message: 02/08/2013, 15h56
  2. Problème sur une sous-requête
    Par benoiteuskadi dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/02/2013, 15h45
  3. [WD14] Problème avec une sous requête
    Par Raptor92 dans le forum WinDev
    Réponses: 4
    Dernier message: 13/04/2010, 13h54
  4. Réponses: 2
    Dernier message: 02/04/2008, 09h59
  5. Problème avec des sous requêtes
    Par nicocolt dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/10/2007, 15h19

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