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 :

CompareValue avec bdd


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 206
    Par défaut CompareValue avec bdd
    bonjour
    j'ai bien chercher dans le web est surtout dans www.developpez.net/forums/ a trouvé une solution pour comparer deux valeurs de deux enregistrements dans les bases de données(temp et stock),on évitant la nostalgie (boucle) des années 70
    en fin j'ai trouvé la procédure MiseAJourStock(); que j'ai modifie a mes besoins mais j'ai rencontré les problèmes suivants :
    1- riens à afficher
    2- Erreur: Expression constante attendue si je fait (Form1.ListBox1.Items.Add(Form1.T_TempVProd_VT.Value);
    bien-sure je veux bien balayer toutes les enregistrements
    la procédure est :
    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
     
    procedure MiseAJourStock2();
    var
      Result: double;
    QuantiteDisponible,QuantiteDemandee: double;
    begin
    QuantiteDisponible := form1.Q_stockSTOCK.value;
     QuantiteDemandee:=Form1.T_TempVQte_VT.Value;
    if (Form1.Q_stock.recordcount> 0) then begin
      case CompareValue(QuantiteDemandee,  QuantiteDisponible) of
    // Quantité demandée inférieure à celle disponible
      LessThanValue: begin
        Result := 0;
        Form1.Q_stock.edit;
        Form1.Q_stockSTOCK.value:= QuantiteDisponible-QuantiteDemandee;
        //Form1.Q_stock.post;
        Form1.Edit1.text := FloatToStr(Result);
      end;
      EqualsValue: begin
    // Quantité demandée égale à celle disponible
        //Form1.Q_stock.delete;
        Result := 0;
        Form1.Edit1.text := FloatToStr(Result);
      end;
      GreaterThanValue:
    // Quantité demandée supérieure à celle disponible
        Result := QuantiteDemandee-QuantiteDisponible;
     
    Form1.ListBox1.Items.Add(Form1.T_TempVProd_VT.Value)
    ShowMessage('des saisies de quantitées supérieure a celles du stock ');
     
     
    //    MiseAJourStock2(Result);
      end;
    end;
    end;

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par défaut
    Il manque un begin après GreaterThanValue
    Entre le nommage, l'indentation, ... faudrait être plus rigoureux.

    et une boucle c'est un classique while nof Eof do Next
    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
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 206
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    Il manque un begin après GreaterThanValue [/I]
    merci vraiment vous avez une Oueil de Troll

    pour ma boucle classique elle fait bien le travail , mais je veux bien tester (GreaterThanValue, LessThanValue, EqualsValue) avec une boucle .

  4. #4
    Rédacteur/Modérateur

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

    Où intervient cette notion de boucle (à part dans la nostalgie) ?
    C'est vraiment très mal expliqué ! Bien sûr, avec l'historique des posts il s'agit d'ABSOLUTE DATABASE (donc un Paradox sans BDE) ce qui me fourni (avec de l'imagination) une idée de ce qui est voulu. Mais, toute cette interface utilisateur (form1, listbox, edit) me fait douter, s'agirait-il d'un programme test pour vérifier ce qui se passerait en utilisant cette procédure ?

    ma réaction sur la procédure : que c'est moche comme code ! Pourquoi ? Tout d'abord j'ai horreur
    - D'un code où je vois des appels à une forme un peu partout
    - Des requêtes associées à une forme, un datamodule c'est mieux
    puis :
    - à quoi sert le test if (Form1.Q_stock.recordcount> 0) ?
    - qu'est-ce que cette histoire de result ? à part une cause de confusion, on utilise result pour une fonction.

    Ensuite où se trouve cette procedure (dans quelle unité ? unité indépendante ou dans l'unité de form1 ou ?) et comment est-elle utilisée ?

    comment déclarerai ça ?
    - en premier lieu j'en ferai une procedure (voire une fonction) dans la partie privée de Form1 ou alors au sein de l'évènement qui fait appel à cette procedure (ce qui éviterai ces Form1.)
    - puis en mettant des paramètres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    procedure MiseAJourStock2(const QuantiteDisponible,QuantiteDemandee: double);
    ou en faisant une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function MiseAJourStock2(const QuantiteDisponible,QuantiteDemandee: double) : Double;
    begin
     Result:=0; 
     case CompareValue(QuantiteDemandee,  QuantiteDisponible) of
      LessThanValue:  Result := QuantiteDisponible-QuantiteDemandee;
      EqualsValue: result:=0; // inutile
      GreaterThanValue: Result := QuantiteDemandee-QuantiteDisponible;
    end;
    end;

    2- Erreur: Expression constante attendue si je fait (Form1.ListBox1.Items.Add(Form1.T_TempVProd_VT.Value);
    correction Form1.ListBox1.Items.Add(Form1.T_TempVProd_VT.asString) mais là encore toutes ces indications de Form1 me donne le tournis

  5. #5
    Membre très actif
    Inscrit en
    Mars 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 206
    Par défaut
    bonjour
    SergioMaster
    C'est vraiment très mal expliqué !
    Bien sûr, avec l'historique des posts il s'agit d'ABSOLUTE DATABASE (donc un Paradox sans BDE) ce qui me fourni (avec de l'imagination) une idée de ce qui est voulu.
    Mais, toute cette interface utilisateur (form1, listbox, edit) me fait douter, s'agirait-il d'un programme test pour vérifier ce qui se passerait en utilisant cette procédure ?
    on dirait que vous lisez mes pensées
    1- oui c'est un programme d'essai pour introduire cette procedure( LessThanValue, EqualsValue, GreaterThanValu) dans le poste antérieur
    2- pour la redondance(Form1) parce que je n'est pas encore déclarer la procedure dans la partie Type.

    3- ma demande : comment introduire une boucle qui balayer les enregistrements dans la partie : GreaterThanValu ?

  6. #6
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    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 658
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par MIWAN Voir le message
    on dirait que vous lisez mes pensées
    J'ai surtout une bonne boule de cristal et des années d'expériences
    3- ma demande : comment introduire une boucle qui balayer les enregistrements dans la partie : GreaterThanValu ?
    une boucle alors qu'un simple SQL pourrait, peut-être suffire ????

    Pour bien répondre, ce n'est pas tant ce pseudo code mal fagotté mais la description des deux tables et l'objectif final qu'il faudrait

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

Discussions similaires

  1. probleme avec BDD et tutorial
    Par jean-marc2 dans le forum Flash
    Réponses: 6
    Dernier message: 02/11/2006, 09h36
  2. connection avec BDD MySQL
    Par devlopassion dans le forum C++Builder
    Réponses: 4
    Dernier message: 30/09/2006, 14h48
  3. [C#]Problème OleDbCommand.ExecuteReader avec BdD Access
    Par Renesis57 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 24/09/2006, 18h36
  4. [Conception] SELECT dépendant d'un autre (avec BDD)
    Par banzzai dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 07/08/2006, 17h57
  5. [C#][débutant] Appz avec bdd
    Par Kerod dans le forum Windows Forms
    Réponses: 5
    Dernier message: 14/05/2006, 17h28

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