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 :

Requête SQl: Fonctionnalité non supportée


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut Requête SQl: Fonctionnalité non supportée
    Bonjour, Voilà je fais un ch'tit prog. qui accède à une BDD MYSQL, mais j'ai un pitit problème quand je lance mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    (id_cmd: Tableau de String)
    DataMYSQL.Qdivers.Close;
    DataMYSQL.Qdivers.SQL.Clear;
    DataMYSQL.Qdivers.SQL.Add('SELECT * FROM article WHERE id_art IN (');
    For j:= 0 to i-1 do
     begin
      if (j<i-1) then
       DataMYSQL.Qdivers.SQL.Add(' '+QuotedSTR(id_cmd[j])+', ')
      else
       //Si on est arrivé à la dernière ligne, on ne met plus de virgule
       DataMYSQL.Qdivers.SQL.Add(' '+QuotedSTR(id_cmd[j])+' ');
     end;
    DataMYSQL.Qdivers.SQL.Add(') '); 
    DataMYSQL.Qdivers.Open;
    j'ai un message d'erreur: "Fonctionnalité non supportée"...

    Y'a t-il une erreur dans mon code?
    Précisions: J'utilise un Tquery(Qdivers) pour accèder à ma BDD MYSQL (Via MYSQL Driver for ODBC)

    Merci!

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    Es tu sur du résultat final au sortir de la construction du SQL?

    pourquoi, pour le debug ne pas utiliser quelque-chose du genre

    Showmessage(DataMYSQL.Qdivers.SQL.Text) juste avant le open ?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    Salut,
    Bien sur que j'ai vérifié la requête!
    Avec 2 ligne ca donne ca:
    SELECT * FROM article WHERE id_art IN ("8", "9")
    Donc apparemment il n'y a pas de problème...

    J'ai essayé aussi cette requête qui ne marche pas non plus (même message d'erreur):
    SELECT * FROM article WHERE id_art IN (SELECT id_art FROM ligne_cmd)

    Merci!

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    MY SQL peut être ? Là , je ne maitrise pas

  5. #5
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par formula_one Voir le message
    Salut,
    Bien sur que j'ai vérifié la requête!
    Avec 2 ligne ca donne ca:
    SELECT * FROM article WHERE id_art IN ("8", "9")
    Donc apparemment il n'y a pas de problème...

    J'ai essayé aussi cette requête qui ne marche pas non plus (même message d'erreur):
    SELECT * FROM article WHERE id_art IN (SELECT id_art FROM ligne_cmd)

    Merci!
    salut;

    de quel type est le champ id_part ? car si c'est un numérique bien sûr que tu as une erreur de type.

    essaie ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM article WHERE id_art IN (8, 9)
    et encore je ne sais pas si un ensemble se déclare avec les () ou les [] donc faut vérifier.

    Bonne chance.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Par défaut
    Salut, le champ "id_art" dans la table article est auto incrémente (int)
    Mais j'ai essayé sans les quotes, et ca ne marche pas non plus... (même message...)
    J'ai essayé d'autres requêtes mais ca ne fonctionne pas non plus...
    ex: SELECT libelle, qte FROM article, ligne_cmd WHERE article.id_art = ligne_cmd.id_art

    OU avec une jointure, mais soit ca fait un message d'erreur, ou ca n'affiche rien du tout...

    Ca viendrait de MYSQL?

  7. #7
    Membre Expert
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 400
    Par défaut
    Citation Envoyé par formula_one Voir le message

    soit ca fait un message d'erreur, ou ca n'affiche rien du tout...

    Ca viendrait de MYSQL?
    ce n'est pas la même chose :
    - ça n'affiche rien correspond à nombre d'enregistrements = 0
    - message d'erreur correspond à erreur

    et je ne suis pas trop sûr que ça vient de MySQL. en plus et pour une meilleure lisibilité utilise la balise # pour formater le code.

    en résumé, si ton champ est auto_inc ce qui signifie numérique tu n'as pas besoin d'utiliser les délimiteurs de chaines de caractères.

    test un exemple avec un seul critère du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select * from tatable
    where ton_id = valeur
    avec valeur une valeur stockée dans la base de données. puis on parlera bien sûr!

    Bonne chance.

  8. #8
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 638
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 638
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par formula_one Voir le message
    Ca viendrait de MYSQL?
    Ou du BDE ou du driver ODBC ....
    pourquoi ne pas attaquer Mysql avec d'autres composants moins obsolètes ?

Discussions similaires

  1. Delphi6 & BDE + DBF "fonctionnalité non supportée"
    Par micoudic dans le forum Bases de données
    Réponses: 7
    Dernier message: 22/07/2011, 10h58
  2. Fonctionnalité non supportée pour un Locate !
    Par teZone dans le forum Débuter
    Réponses: 8
    Dernier message: 02/06/2009, 23h06
  3. Requête SQL (original non ?)
    Par Pingouin1313 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 08/09/2008, 09h22
  4. [Borland DataPump] PDX -> Oracle : "Fonctionnalité non supportée"
    Par ShaiLeTroll dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/11/2007, 12h21
  5. EDBEngineError Paradox: "Fonctionnalité non supportée"
    Par forzaxelah dans le forum Bases de données
    Réponses: 1
    Dernier message: 11/05/2006, 17h32

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