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

 Delphi Discussion :

demande requête sql sous delphi 7


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut demande requête sql sous delphi 7
    bonjours les amis, voici mon problème

    j'aimerais transformer cette boucle en une requette sql (sql 2000) sous delphi 7 pour mettre un tquery

    ----debut de boucle -------------------

    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
    mdd.TPriseCharge.First;
    while not mdd.TPriseCharge.Eof do
    begin
        if ((mdd.TPriseChargenum_miss.Text=Prise_chargeF.edit42.Text)
        and (mdd.TPriseChargedate_pc.Text=Prise_chargeF.label1.caption)) then
        begin
         mdd.TPriseCharge.Edit;
         mdd.TPriseChargemont_dej.Value:=strtofloat(edit1.Text);
         mdd.TPriseChargemont_din.Value:=strtofloat(edit2.Text);
         mdd.TPriseChargemont_heber.Value:=strtofloat(edit3.Text);
         mdd.TPriseChargejour.Text:=label15.Caption;
         mdd.TPriseChargetype_pc.Text:=label11.Caption;
         mdd.TPriseChargetotal_indem.Value:=strtofloat(edit4.Text);
         mdd.TPriseChargergion.Text:=edit43.Text;
     
        end;
        mdd.TPriseCharge.Next;
        end;
    ----- fin de boucle --------

    la première condition edit42 fixe.

    sauf la c'est que la 2ème condition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    mdd.TPriseChargedate_pc.Text=Prise_chargeF.label1.caption)) peut etre 
    label2.caption 
    label3.caption 
    .
    .
    .
    label10.caption
    puisque j'utilise 10 CheckBox, (on check : alors 10 boucle de while not ) , chaque checkbox pour chaque label.caption

    merci pour votre aide

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 617
    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 617
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Tout d'abord , merci d'utiliser les balises de code (le bouton #) pour une lecture plus agréable. Et le mieux serait quand même d'indiquer la structure de la table plutôt que d'avoir à la deviner !
    indiquer aussi le type de composants utilisé BDE, DBExpress, ADO .....

    un Edit est l'équivalent SQL de UPDATE
    les if l'équivalent d'un WHERE

    donc le SQL donnerait quelque chose comme
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE NOMTABLE SET Chargemont_dej=:CDEJ,Chargemont_din=:CDIN,
    Chargemont_heber=:CHEBER,Chargejour=:JOUR,Chargetype_pc=:TPC,
    Chargetotal_indem=:CT,Chargergion=:CREGION
    WHERE Chargenum_miss=:MISSION
    AND Chargedate_pc=:DATE

    ce qui donnerait par la suite un code DELPHI

    Code avec Query BDE : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query.ParamByName('CDEJ').asFloat:=strtofloat(edit1.Text);
    Query.ParamByName('CDIN').asFloat:=strtofloat(edit2.Text);
    Query.ParamByName('CHEBER').asFloat:=strtofloat(edit3.Text);
    Query.ParamByName('JOUR').asString:=label15.caption;
    Query.ParamByName('TPC').asString:=label11.caption;
    Query.ParamByName('CT').asFloat:=strtofloat(edit4.Text);
    Query.ParamByName('CREGION').asString:=Edit43.Text;
    Query.ParamByName('MISSION').asString:=label11.caption;
    Query.ParamByName('DATE').asString:=Prise_chargeF.label1.caption;
    Query.ExecSQL;

    cependant , j'aimerais faire plusieurs suggestions :
    sur les montants , il serait préférable d'utiliser un StrFloatDef
    sur le Total - un champ de type calculé éviterait d'avaoir al le mettre à jour
    - la somme des 3 montants serait peut être mieux
    sur la date - la date en texte dans une BDD est une très mauvaise idée

  3. #3
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    je vais essayer et merci pour votre réponse

  4. #4
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    Bonjour,

    Tout d'abord , merci d'utiliser les balises de code (le bouton #) pour une lecture plus agréable. Et le mieux serait quand même d'indiquer la structure de la table plutôt que d'avoir à la deviner !
    indiquer aussi le type de composants utilisé BDE, DBExpress, ADO .....

    un Edit est l'équivalent SQL de UPDATE
    les if l'équivalent d'un WHERE

    donc le SQL donnerait quelque chose comme
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    UPDATE NOMTABLE SET Chargemont_dej=:CDEJ,Chargemont_din=:CDIN,
    Chargemont_heber=:CHEBER,Chargejour=:JOUR,Chargetype_pc=:TPC,
    Chargetotal_indem=:CT,Chargergion=:CREGION
    WHERE Chargenum_miss=:MISSION
    AND Chargedate_pc=:DATE

    ce qui donnerait par la suite un code DELPHI

    Code avec Query BDE : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Query.ParamByName('CDEJ').asFloat:=strtofloat(edit1.Text);
    Query.ParamByName('CDIN').asFloat:=strtofloat(edit2.Text);
    Query.ParamByName('CHEBER').asFloat:=strtofloat(edit3.Text);
    Query.ParamByName('JOUR').asString:=label15.caption;
    Query.ParamByName('TPC').asString:=label11.caption;
    Query.ParamByName('CT').asFloat:=strtofloat(edit4.Text);
    Query.ParamByName('CREGION').asString:=Edit43.Text;
    Query.ParamByName('MISSION').asString:=label11.caption;
    Query.ParamByName('DATE').asString:=Prise_chargeF.label1.caption;
    Query.ExecSQL;

    cependant , j'aimerais faire plusieurs suggestions :
    sur les montants , il serait préférable d'utiliser un StrFloatDef
    sur le Total - un champ de type calculé éviterait d'avaoir al le mettre à jour
    - la somme des 3 montants serait peut être mieux
    sur la date - la date en texte dans une BDD est une très mauvaise idée


    comment je dois déclarer ('CDEJ'),('CDIN'),('CHEBER'),....
    comme des variables ???

    j'ai message erreur prisechargemont_dej:nom de colonne incorrect

    voulez vous bien me diriger comment faire
    merci

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 617
    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 617
    Billets dans le blog
    65
    Par défaut
    comment je dois déclarer ('CDEJ'),('CDIN'),('CHEBER'),....
    comme des variables ???
    non , ce sont des paramètres de la requête

    j'ai message erreur prisechargemont_dej:nom de colonne incorrect
    ça c'est de votre faute . j'ai repris le code que vous aviez fourni en supposant que le nom des colonnes étaient correct.
    vous m'auriez fourni ce que j'ai demandé , j'aurais peut être pu fournir le SQL correct
    Citation Envoyé par sergiomaster
    Et le mieux serait quand même d'indiquer la structure de la table plutôt que d'avoir à la deviner !
    indiquer aussi le type de composants utilisé BDE, DBExpress, ADO .....

  6. #6
    Membre actif
    Inscrit en
    Mai 2008
    Messages
    89
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 89
    Par défaut
    Citation Envoyé par SergioMaster Voir le message
    non , ce sont des paramètres de la requête


    ça c'est de votre faute . j'ai repris le code que vous aviez fourni en supposant que le nom des colonnes étaient correct.
    vous m'auriez fourni ce que j'ai demandé , j'aurais peut être pu fournir le SQL correct
    le code sql je le met sur le tquery sql:tstring.??????

    comment dois_je déclarer les parametres de la requette.

    en ce qui concerne les noms de colonnes elles sont correctes.
    pouviez vous svp me donner la requette sql complete
    merci infiniment
    Fichiers attachés Fichiers attachés

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Je pense qu'un tour dans la section tutoriel serait un plus pour la compréhension de l'utilisation des query (Vu que sergio a donné la réponse pour la requête).
    Particulièrement cette section
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

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

Discussions similaires

  1. transformer requête sql sous langage delphi
    Par wiski08000 dans le forum Bases de données
    Réponses: 6
    Dernier message: 20/11/2014, 14h28
  2. requête sql sous delphi
    Par jack2009 dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/09/2009, 19h23
  3. requête sql sous access
    Par jadey dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/08/2006, 21h20
  4. 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
  5. affichage requête sql sous phppgadmin
    Par kerzut dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 25/02/2005, 12h39

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