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
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut probleme avec une requete
    bonjour,
    j'execute une requete dynamique;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dtm_client.cldts_NQ_libre3.sql.text := 'select professeur as num , sum(taux) as totaux from compter_heure where professeur=:pprofesseur and '+
    ' datecours>= '+ quotedstr(FormatDateTime('yyyy/mm/dd',debut))+ ' and datecours<= '+  quotedstr(FormatDateTime('yyyy/mm/dd',fin))+ ' group by professeur    '
    la requete s'execute normalement; j'arrive à meme à afficher la valeur du premier champ; mais il me dit qu'il ne retrouve pas le second champ;
    j'ai tout fait mais ca ne marche pas; j'ai meme change de composant Query ca ne marche pas
    champ totaux non trouvé
    Merci de bien vouloir m'aider à débloquer la situation.

  2. #2
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Une première remarque , a propos du SQL, on va me traiter de puriste ou chipoteur mais il vaut mieux utiliser des paramètres pour les dates

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select professeur as num , sum(taux) as totaux 
    from compter_heure where professeur=:pprofesseur 
    and datecours between :pdatedebut and :pdatefin
    group by professeur
    Quant au champ non déclaré , un clic droit sur la query pour appeler l'éditeur de champ , puis ajout des champs , résoudra peut - être le problème .
    ou alors si aucun des champs n'est déclaré , l'utilisation de
    Query.fieldbyname('totaux').asFloat


    [Edit] PS: Bienvenue sur le Forum
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut le probleme persiste
    bonjour et merci dem'avoir bien accueilli .

    en fait j'avais fait ce que vous m'avez préconisé mais ca ne marche pas;
    en effet il ne me dit plus qu'il ne reconnait plus le champ "totaux" mais il le voit
    comme du "Null"
    mais quand je recupere le text de la requete et que je l'execute sous mysql
    ca marche bien (totaux me donne bien sa valeur );
    je crois que le probleme se situe plus au niveau de delphi
    qu'au niveau de la requete.
    merci

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    ah, tu semble utiliser MySQL, mais avec quel lib ? ADO ? Devart ? DBx ?
    Leur comportement à chacun différe ...

    Personnellement, j'utilise les requêtes paramètrées sur MySQL via la lib Devart CoreLab, ce que tu donne en exemple fonctionne parfaitement, je l'ai fait pas plus tard que la semaine dernière ...

    Dans d'autres applications que je maintiens, on fait du SQL via concat, ce type de code fonctionne aussi très bien ...

    d'où vient ce message "champ totaux non trouvé"
    Parcours les Fields et FieldDefs, pour voir si le champ totaux n'aurait pas un autre nom ...
    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

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    j'utilise BDE, ce que je ne comprends pas c'est que j'ai l'habitude d'écrire des req comme ca et ca marche mais je ne sais pas pourkoi il plante sur celle ci;
    en fait totaux c'est l'alias donné au champ sum(taux) pr pouvoir l'appeler après aisément.
    j'ai même essayé un Nomrequete.fields[1].value mais ca ne marche pas;
    mais je chercherai tjrs. ca doit marcher.
    Merci

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Par le BDE, donc finalement, tu utilise le driver ODBC ... en fait, tu t'embête, car par ADO c'est plus direct dans ce cas !

    "ça ne marche pas", valeur vide, violation d'accès ?

    as-tu essayé un RecordCount ou IsEmpty ?
    as-tu essayé un Fields.Count ?
    as-tu essayé sans mettre le Where ?
    as-tu essayé le format de date "yyyy-mm-dd"
    as-tu essayé de ne pas mettre "num" comme alias dans "professeur as num"
    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

  7. #7
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    en fait j'ai tout essayé sauf le Fields.Count;

  8. #8
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 042
    Points : 40 955
    Points
    40 955
    Billets dans le blog
    62
    Par défaut
    Es tu "sur" de ta table , un taux qui serait à nul pourrait peut être fournir ce résultat erroné ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  9. #9
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    bonjour,
    j'ai fait un autre pas ds le problème; j'ai constaté que la source c'est au niveau du champ taux. Mais le champ taux n' a pas de valeur null ds la base ; il est renseigné sur tous les enrégistrements.
    En fait quand je fais une requête il neme fait pas voir la valeur du champ taux il me dit que le champ taux n'existe pas (tt comm l'autre erreur).
    Mais la requete executée ds mysql me montre la valeur du champ taux.
    Et aussi quand j'enregistre ds la table où il ya le champ taux , il n'y apas de probleme.(Il ne me dit pas qu'il ne le connait pas dans ce cas).
    Merci SergioMAster pr ton implication

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    le probleme est résolu; j'ai supprimé la table et je l'ai recréé. je n'ai rien changé dans le code; ca marche. C'est bizarre mais ca marche
    Merci beaucoup pour votre implication

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

Discussions similaires

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

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