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 :

DELPHI XE - Erreur ADOQuery avec instruction order by


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Par défaut DELPHI XE - Erreur ADOQuery avec instruction order by
    Bonjour,

    J'utilise une base access 2007 avec delphi XE.

    j'ai une requête de sélection de données que je dois trier dans un certains ordre.

    j'utilise donc un composant ADOConnection pour me connecter à ma base et un composant ADOQuery pour effectuer ma requête que voici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    ADOQSel.SQL.Clear
    ADOQSel.SQL.Add('Select *');
    ADOQSel.SQL.Add('from Article_Detail');
    ADOQSel.SQL.Add('Where Fonction = 1');
    ADOQSel.SQL.Add('Or Fonction = 2');
    ADOQSel.SQL.Add('Or Fonction = 3');
    ADOQSel.SQL.Add('Or Fonction = 4');
    ADOQSel.SQL.Add('Or Fonction = 5');
    ADOQSel.SQL.Add('order by affaire, position, num_cadre, cote, groupe_article, Fonction');
    ADOQSel.Active := true;
    Lorsque j'active la requête j'ai un message d'erreur "Erreur non spécifiée" et impossible d'accéder aux données.
    Si j'exécute cette requête directement dans Access je n'ai aucun message d'erreur.

    Dans Delphi et le composant ADOQuery si dans ma requête au niveau du order by je laisse qu'un seul champs au lieu de plusieurs je n'ai pas de message d'erreur.

    Merci d'avance pour votre aide pour m'indiquer comment corriger pour que je puisse indiquer plusieurs champs dans mon order by et que je n'ai pas de message d'erreur

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 115
    Par défaut
    Essaye de remplacer le SELECT * par une liste explicite de chaque champ devant être extrait

    Essaye un Open() plutôt qu'une modification de Active

    Fonction = 1 OR Fonction = 2 ...peut s'écrire Fonction IN (1, 2 ...) .
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 786
    Par défaut
    Bonjour,
    Citation Envoyé par vitch8 Voir le message
    J'utilise une base access 2007 avec delphi XE.
    ...
    Dans Delphi et le composant ADOQuery si dans ma requête au niveau du order by je laisse qu'un seul champs au lieu de plusieurs je n'ai pas de message d'erreur.
    Votre requête utilise un mot réservé de Access 2007 : POSITION
    Avez vous essayé en réécrivant la requête à la "façon Access" (beurk), c.a.d. en encadrant le nom de la colonne avec des crochets ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ADOQSel.SQL.Clear
    ADOQSel.SQL.Add('Select *');
    ADOQSel.SQL.Add('from Article_Detail');
    ADOQSel.SQL.Add('Where Fonction = 1');
    ADOQSel.SQL.Add('Or Fonction = 2');
    ADOQSel.SQL.Add('Or Fonction = 3');
    ADOQSel.SQL.Add('Or Fonction = 4');
    ADOQSel.SQL.Add('Or Fonction = 5');
    ADOQSel.SQL.Add('order by affaire, [position], num_cadre, cote, groupe_article, Fonction');

  4. #4
    Membre confirmé
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Par défaut
    Bonjour,

    Merci Philippe votre solution est la bonne avec le nom position entre crochet []

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

Discussions similaires

  1. Réponses: 13
    Dernier message: 29/10/2014, 15h57
  2. DELPHI, EXCEL : Erreur OLE avec fonction SOMME.SI
    Par benoît14 dans le forum Langage
    Réponses: 4
    Dernier message: 07/01/2013, 12h30
  3. [CR10][Delphi] PB avec Instruction PrintReport
    Par coucoucmoi dans le forum SDK
    Réponses: 6
    Dernier message: 09/03/2005, 09h30
  4. gérer les erreurs intebase avec delphi
    Par mondanikoffi dans le forum Bases de données
    Réponses: 1
    Dernier message: 14/12/2004, 15h46
  5. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20

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