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 :

TADOQuery : Requête paramétrée avec Delphi 7


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut TADOQuery : Requête paramétrée avec Delphi 7
    Bonjour,

    J'ai réussit à faire fonctionner une requette sans parametre,

    Par contre, quand je veux paramétrer (Nom Elv; date debut et Date fin) cette même requete (avec 3 paramètres) , elle affiche un contenu vide dans la grille, sans me signaler une erreur de syntaxe en passant.

    Voici à quoi ressemble cette requete :
    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
    16
    17
    18
    19
    20
    21
    begin
      qryLesNotes.SQL.Clear;
      qryLesNotes.SQL.Add ('SELECT N.ScoNum, ... , C.CycNom ');
      qryLesNotes.SQL.Add ('FROM  tblNotes N');
      qryLesNotes.SQL.Add ('INNER JOIN ...');
      qryLesNotes.SQL.Add ('INNER JOIN ... ');
      qryLesNotes.SQL.Add ('INNER JOIN ... ');
     
      qryLesNotes.SQL.Add ('WHERE (N.EtuNum = :ParamEtuNum)');
      qryLesNotes.SQL.Add ('AND (N.NotDate Between :ParamDateDebut And :ParamDateFin)');
     
      qryLesNotes.SQL.Add ('GROUP BY N.ScoNum, ... ');
      qryLesNotes.SQL.Add ('HAVING ... ');
      qryLesNotes.SQL.Add ('ORDER BY E.EtuNom, M.MatNom');
     
      qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
      qryLesNotes.Parameters.ParamByName ('ParamDateDebut').Value := dtpDateDebut.Date;
      qryLesNotes.Parameters.ParamByName ('ParamDateFin').Value := dtpDateFin.Date;  
     
      qryLesNotes.Open;
    end;

    Comment puis je faire que la requette affiche les données : car la grille est vide. Je tape le nom de l'eleve; la date de debut et de fin; puis clic sur un bouton. rien ne s'affiche...

    Merci de m'aider

    Lionel Eric

  2. #2
    Membre confirmé
    Avatar de alheuredudejeuner
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 376
    Points : 632
    Points
    632
    Billets dans le blog
    4
    Par défaut asstring à la place de value ?
    ou bien AsDate
    qryLesNotes.Parameters.ParamByName ('ParamDateDebut').AsDate

    pour voir

    André

  3. #3
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut TADOQuery : Requête paramétrée avec Delphi 7
    bonjour,

    le sgbd que j'utilise est le SQL SERVER 2000
    Quand j'essaie de mettre la syntaxe suivante (qui marche avec le DELPHI BDE PARADOX), elle affiche erreur de syntaxe :
    qryLesNotes.Parameters.ParamByName ('ParamDateDebut').AsDate
    Erreur de syntaxe parce que .asDate n'apparait pas dans l'IDE

    NB les 3 paramètres
    ParamEtuNum = type string
    ParamDateDebut = type date
    ParamDateFin = type date

    voici ma requête complète, en passant elle contient des formules qui calculent la Moyenne (AVG) :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    With dmGesco2010 do
     
    begin
     
      qryLesNotes.SQL.Clear;
     
      qryLesNotes.SQL.Add ('SELECT N.ScoNum, N.EtuNum,E.EtuNom, E.EtuPrenoms, S.SexNom,V.VilNom, Na.NatNom, I.ClaNum, M.MatNom, TJ.Coeff, AVG(N.NotDevoir) AS Devoir, AVG(N.NotCompo) AS Compo, C.CycNom ');
     
      qryLesNotes.SQL.Add (' '+', F.FilNom,O.OptNom, (AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 AS Moy, (AVG(N.NotDevoir) + AVG(N.NotCompo))/ 2 * TJ.Coeff AS MoyGle ');
     
      qryLesNotes.SQL.Add ('FROM  tblNotes N');
     
      qryLesNotes.SQL.Add ('INNER JOIN TJ_Programmer TJ ON N.ScoNum = TJ.ScoNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblEtudiant E ON N.EtuNum = E.EtuNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblInscription I ON E.EtuNum = I.EtuNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblClasse ON TJ.ClaNum = tblClasse.ClaNum AND I.ClaNum = tblClasse.ClaNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblMatiere M ON N.MatCode = M.MatCode AND TJ.MatCode = M.MatCode');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblSexe S ON E.SexNum = S.SexNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblVille V ON E.VilNum = V.VilNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblCycle C ON tblClasse.CycNum = C.CycNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblNation Na ON E.NatNum = Na.NatNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblFiliere F ON tblClasse.FilNum = F.FilNum');
     
      qryLesNotes.SQL.Add ('INNER JOIN tblOption O ON tblClasse.OptNum = O.OptNum');
     
     
     
      qryLesNotes.SQL.Add ('WHERE (N.EtuNum = : ParamEtuNum)');
     
      qryLesNotes.SQL.Add ('AND (N.NotDate Between : ParamDateDebut And : ParamDateFin)');
     
     
     
      qryLesNotes.SQL.Add ('GROUP BY N.ScoNum, N.EtuNum, E.EtuNom, E.EtuPrenoms, S.SexNom, V.VilNom,Na.NatNom, I.ClaNum, M.MatNom, TJ.Coeff,   C.CycNom, F.FilNom,O.OptNom');
     
      qryLesNotes.SQL.Add ('HAVING ((AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 IS NOT NULL)');
     
      qryLesNotes.SQL.Add ('ORDER BY E.EtuNom, M.MatNom');
     
     
     
      qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
     
      qryLesNotes.Parameters.ParamByName ('ParamDateDebut').Value := dtpDateDebut.Date;
     
      qryLesNotes.Parameters.ParamByName ('ParamDateFin').Value := dtpDateFin.Date;     
     
     
     
      qryLesNotes.Open;
     
    end;
    Merci de pouvoir m'aider à résoudre la difficulté

    Eric

  4. #4
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Salut,
    1° Est ce que tu es sur que si tu met directement la valeur des paramètres dans la requête elle même, tu as des lignes ?
    2° Est ce une erreur de frappe car tu as mis des espaces au niveau de tes paramètres :
    qryLesNotes.SQL.Add ('WHERE (N.EtuNum = : ParamEtuNum)');
    qryLesNotes.SQL.Add ('AND (N.NotDate Between : ParamDateDebut And : ParamDateFin)');
    change en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    qryLesNotes.SQL.Add ('WHERE (N.EtuNum = :ParamEtuNum)');
    qryLesNotes.SQL.Add ('AND (N.NotDate Between :ParamDateDebut And :ParamDateFin)');
    En faites, j'ai fais une simulation avec SQL Server 2000 et D7 et ça me sort bien les enregistrements. J'ai procedé comme suit (en substituant avec ton code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
    qryLesNotes.Parameters.ParamByName ('ParamDateDebut').Value := FormatDateTime('YYYY-MM-DD',dtpDateDebut.Date);
    qryLesNotes.Parameters.ParamByName ('ParamDateFin').Value := FormatDateTime('YYYY-MM-DD',dtpDateFin.Date);
    A essayer et tenez nous au courant de l'évolution.

    A+
    On progresse .....

  5. #5
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut TADOQuery : Requête paramétrée avec Delphi 7
    bjr

    merci bien

    pour répondre rapidement, je n'ai pas mis des espaces dans mon code entre les deux poits et Param...

    A tout de suite

  6. #6
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut TADOQuery : Requête paramétrée avec Delphi 7
    Bonjour

    j'ai essayé cette syntaxe, mais sans succès, il ne signale pas d'erreur de syntaxe mais à l'exécution le contenu de la grille est vide : ça ne fonctionne toujours pas.
    Je me dis personnellement que la syntaxe ci-dessous ne pas correcte avec les parametres pour un composant TADOQuery

    qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
    qryLesNotes.Parameters.ParamByName ('ParamDateDebut').Value := FormatDateTime('YYYY-MM-DD',dtpDateDebut.Date);
    qryLesNotes.Parameters.ParamByName ('ParamDateFin').Value := FormatDateTime('YYYY-MM-DD',dtpDateFin.Date);
    Merci d'avance pour la résolution du pb

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    En faite, j'avais fais une simulation sur une base de donnée sous SQL Server 2000 ce matin et voici ce que j'ai pu en tirer :
    - Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
    qryLesNotes.Parameters.ParamByName('ParamDateDebut').Value := dtpDateDebut.Date;
    qryLesNotes.Parameters.ParamByName('ParamDateFin').Value := dtpDateFin.Date;
    Il me sort pas les enregistrement correspondant à la date indiqué sur dtpDateDebut.
    Par contre avec ceci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
     qryLesNotes.Parameters.ParamByName('ParamDateDebut').Value := FormatDateTime('YYYY-MM-DD',dtpDateDebut.Date);
     qryLesNotes.Parameters.ParamByName('ParamDateFin').Value := FormatDateTime('YYYY-MM-DD',dtpDateFin.Date);
    Il me sort bien tous les enregistrements. De toute façon, je n'ai fais que modifier l'encodage des dates.
    D'ailleurs, tu peux vérifier dans SQL Manager.
    On progresse .....

  8. #8
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    slt

    je suis étonné que celà ne marche pas chez moi,
    pour aller pas à pas j'ai d'abord éliminer momentanément les 2 derniers parametres des dates pour ne garder que EtuNum

    je sélectionne un Etudiant, je clique sur OK : rien ne se passe, toujours le contenu est vide
    alors je me dis qu'il y a un pb qui ne vas pas !

    Vérifions un peu ma syntaxe : ...
    qryLesNotes.SQL.Add ('WHERE (N.EtuNum =: ParamEtuNum)'); // Nb il n'y a pas d'espace entre : et ParamEtuNum dans mon code sql
    GROUP BY ....
    HAVING ...
    ORDER BY...
    qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
    qryLesNotes.Open;
    voilà, avec un seul paramètre ça ne fonctionne pas, où p se retrouver donc l'erreur !

    J'airai aimé voir votre code en totalité

    Merci

  9. #9
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Salut Tleboukaka.
    Je n'ai pas ta bdd mais je pense que c'est ton requête qui ne retourne rien.
    Essaye d'executer cette requête directement depuis Entreprise Manager de SQL Server. Essaye d'abord d'enlever les paramètres pour voir si cette requête retourne quelques chose.
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    SELECT 
        N.ScoNum,
        N.EtuNum,
        E.EtuNom,
        E.EtuPrenoms,
        S.SexNom,
        V.VilNom,
        Na.NatNom,
        I.ClaNum,
        M.MatNom,
        TJ.Coeff,
        AVG(N.NotDevoir) AS Devoir,
        AVG(N.NotCompo) AS Compo, 
        C.CycNom,
        F.FilNom,
        O.OptNom, 
        (AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 AS Moy, 
        (AVG(N.NotDevoir) + AVG(N.NotCompo))/ 2 * TJ.Coeff AS MoyGle
    FROM  tblNotes N
    INNER JOIN TJ_Programmer TJ ON N.ScoNum = TJ.ScoNum
    INNER JOIN tblEtudiant E ON N.EtuNum = E.EtuNum
    INNER JOIN tblInscription I ON E.EtuNum = I.EtuNum
    INNER JOIN tblClasse ON TJ.ClaNum = tblClasse.ClaNum AND I.ClaNum = tblClasse.ClaNum //A quoi ça sert cette jointure ?
    INNER JOIN tblMatiere M ON N.MatCode = M.MatCode AND TJ.MatCode = M.MatCode
    INNER JOIN tblSexe S ON E.SexNum = S.SexNum
    INNER JOIN tblVille V ON E.VilNum = V.VilNum
    INNER JOIN tblCycle C ON tblClasse.CycNum = C.CycNum
    INNER JOIN tblNation Na ON E.NatNum = Na.NatNum
    INNER JOIN tblFiliere F ON tblClasse.FilNum = F.FilNum
    INNER JOIN tblOption O ON tblClasse.OptNum = O.OptNum
    GROUP BY 
        N.ScoNum, 
        N.EtuNum, 
        E.EtuNom, 
        E.EtuPrenoms, 
        S.SexNom, 
        V.VilNom,
        Na.NatNom, 
        I.ClaNum, 
        M.MatNom, 
        TJ.Coeff,
        C.CycNom,
        F.FilNom,
        O.OptNom
    HAVING 
        (AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 IS NOT NULL AND
        N.EtuNum = : ParamEtuNum AND
        N.NotDate Between : ParamDateDebut And : ParamDateFin    
    ORDER BY 
        E.EtuNom, 
        M.MatNom
    Courage
    On progresse .....

  10. #10
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut TADOQuery : Requête paramétrée avec Delphi 7
    slt

    Merci bien de m'a voir envoyé toute ta requete
    en effet, sans mettre les 3 parametres, ma requete marche.
    ensuite,

    INNER JOIN tblClasse ON TJ.ClaNum = tblClasse.ClaNum AND I.ClaNum = tblClasse.ClaNum //A quoi ça sert cette jointure ?
    Cette jointure parce que dans ma requete il y a des champs appartenant à 3 tables (tblFiliere, tblOption, tblCycle) qui sont affichés dans la requete. et ces 3 tablles sont liées avec la tblClasse. Ces champs sont : FilNom; OptNom et CycNom

    Remarque :
    J'ai remarqué que dans ta requete (qui marche) il n'y a pas la clause WHERE !!

    Je vais essayer de faire comme ta requete, en enlevant le WHERE
    comme ceci
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    HAVING 
        (AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 IS NOT NULL AND
        N.EtuNum = : ParamEtuNum AND
        N.NotDate Between : ParamDateDebut And : ParamDateFin    
    ORDER BY 
        E.EtuNom, 
        M.MatNom

    je verai ce que ça va donner

    Merci

  11. #11
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    sans grande convictions, selon les types de champs dans la base il faut définir le type des paramètres sa aide des fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    qryLesNotes.Parameters.ParamByName('ParamDateFin').Value := dtpDateFin.Date; 
    qryLesNotes.Parameters.ParamByName('ParamDateFin').DataType := ftDate;
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  12. #12
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    Slt

    Andry, s'il vs plait, quelle propriété avez vous choisi comme CURSORTYPE de votre composant TADOQuery ?
    Pour ma part mon composant qryLesNotes est à ctStatic pour la propriété CURSORTYPE. est celà as de l'importance ?

    Merci de m'en informer par là.

    @+

  13. #13
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    Citation Envoyé par ouiouioui Voir le message
    sans grande convictions, selon les types de champs dans la base il faut définir le type des paramètres sa aide des fois
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    qryLesNotes.Parameters.ParamByName('ParamDateFin').Value := dtpDateFin.Date; 
    qryLesNotes.Parameters.ParamByName('ParamDateFin').DataType := ftDate;
    +1 sans faire de formadatetime, car avec sa, ADO+delphi (je crois ) règle le problème,
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  14. #14
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    il m'affiche le message d'erreur à la compilation, du genre : Type non déclaré pour .... ftDate
    qryLesNotes.Parameters.ParamByName('ParamDateFin').DataType := ftDate;

    a+

  15. #15
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Points : 1 181
    Points
    1 181
    Par défaut
    Re Salut,

    Rajoute DB dans tes Uses.
    On progresse .....

  16. #16
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    bjour,

    je peu vous rassurer que ma requete ne marche toujours pas avec les parametres.
    sans les parametres elle affiche les enregistrement. Avec les parametres, elle affiche les memes enregistrements
    du cou je me dit que ce n'est pas la bonne syntaxe pour les parametres avec un composant TADOQuery !!!

    alors, comment utiliser les parametres avec un TADOQuery : parameters ou paramByName ou les deux; mais comment ?

    qui peu m'aider à dénouer la situation ! svp

  17. #17
    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
    Au Final, ta toute dernière version de code ressemble à quoi, peux-tu fournir le code complet de la toute dernière version !

    J'ai eu des soucis avec les paramètres, voir ICI gérés différement entre ADO et BDE par exemple ...
    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

  18. #18
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    slt

    Mon problème n'est pas toujours résolu
    La requete avec parametre ne marche toujours pas

    A bientot

  19. #19
    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
    Citation Envoyé par ShaiLeTroll Voir le message
    Au Final, ta toute dernière version de code ressemble à quoi, peux-tu fournir le code complet de la toute dernière version !
    On a bien compris que ton problème n'est pas résolu, mais si au moins tu fournissais le code actuel (le tout dernier testé) pour que l'on arrête de partir dans tous les sens ...
    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

  20. #20
    Membre régulier
    Inscrit en
    Septembre 2005
    Messages
    192
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 192
    Points : 90
    Points
    90
    Par défaut
    Bonjour à tous !

    Voici ma dernière version de la requete sql
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    With dmGesco2010 do
    begin
      qryLesNotes.SQL.Clear;
      qryLesNotes.SQL.Add ('SELECT N.ScoNum, N.EtuNum,E.EtuNom, E.EtuPrenoms, S.SexNom,V.VilNom, Na.NatNom, I.ClaNum, M.MatNom, TJ.Coeff, AVG(N.NotDevoir) AS Devoir, AVG(N.NotCompo) AS Compo, C.CycNom ');
      qryLesNotes.SQL.Add (' '+', F.FilNom,O.OptNom, (AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 AS Moy, (AVG(N.NotDevoir) + AVG(N.NotCompo))/ 2 * TJ.Coeff AS MoyGle ');
      qryLesNotes.SQL.Add ('FROM  tblNotes N');
      qryLesNotes.SQL.Add ('INNER JOIN TJ_Programmer TJ ON N.ScoNum = TJ.ScoNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblEtudiant E ON N.EtuNum = E.EtuNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblInscription I ON E.EtuNum = I.EtuNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblClasse ON TJ.ClaNum = tblClasse.ClaNum AND I.ClaNum = tblClasse.ClaNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblMatiere M ON N.MatCode = M.MatCode AND TJ.MatCode = M.MatCode');
      qryLesNotes.SQL.Add ('INNER JOIN tblSexe S ON E.SexNum = S.SexNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblVille V ON E.VilNum = V.VilNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblCycle C ON tblClasse.CycNum = C.CycNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblNation Na ON E.NatNum = Na.NatNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblFiliere F ON tblClasse.FilNum = F.FilNum');
      qryLesNotes.SQL.Add ('INNER JOIN tblOption O ON tblClasse.OptNum = O.OptNum');
     
      qryLesNotes.SQL.Add ('WHERE (N.EtuNum = : ParamEtuNum)');
      qryLesNotes.SQL.Add ('AND (N.NotDate Between : ParamDateDebut And : ParamDateFin)');
     
      qryLesNotes.SQL.Add ('GROUP BY N.ScoNum, N.EtuNum, E.EtuNom, E.EtuPrenoms, S.SexNom, V.VilNom,Na.NatNom, I.ClaNum, M.MatNom, TJ.Coeff, C.CycNom, F.FilNom,O.OptNom');
      qryLesNotes.SQL.Add ('HAVING ((AVG(N.NotDevoir) + AVG(N.NotCompo)) / 2 IS NOT NULL)');
      qryLesNotes.SQL.Add ('ORDER BY E.EtuNom, M.MatNom');
     
      qryLesNotes.Parameters.ParamByName('ParamEtuNum').Value := dlcEtuNum.Text;
      qryLesNotes.Parameters.ParamByName('ParamDateDebut').Value := dtpDateDebut.Date;
      qryLesNotes.Parameters.ParamByName('ParamDateFin').Value := dtpDateFin.Date;  
     
      qryLesNotes.Open;
     
    end;
    Je travaille avec un composant TADOQuery = qryLesNotes
    Est ce qu'il y aurait un problème au niveau des propriétés de ce composant (mon sgbd = Sql Server 200) ?

    Au secour !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Requête paramétrées sous delphi 2006
    Par jullegeay dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/06/2006, 07h56
  2. Requète paramétrée avec résultat variable
    Par slackjayo dans le forum Access
    Réponses: 2
    Dernier message: 28/04/2006, 20h39
  3. Requête Paramétrée avec DropDownList
    Par kirgan dans le forum Access
    Réponses: 2
    Dernier message: 24/04/2006, 16h22
  4. [WD8] Requêtes paramétrées avec accès odbc direct
    Par devalender dans le forum WinDev
    Réponses: 5
    Dernier message: 20/12/2005, 12h25
  5. Déterminer une requête paramétrée avec LIKE
    Par priest69 dans le forum Access
    Réponses: 4
    Dernier message: 24/10/2005, 19h29

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