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 :

Erreur de maj d'une table !


Sujet :

Bases de données Delphi

  1. #1
    Membre confirmé Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Par défaut Erreur de maj d'une table !
    Bonjour;
    mon problem c'est que j'avais , en cliquant sur un bouton, l'edition d'un bon d'entrée, c'est à dire les articles, leurs prix, quantité, et je leur calculait le monatant avant l'affichage, et ça marché, maintenant, ça ne march epas, et j'ai un message d'erreur qui dit que ma table n'ete pas en mode d'edition ou d'insertion malgrè qu'elle est active et voici le bout de code où le probleme se situe :

    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
     
     art_entree.first;
     montantee:=0;
     nb_arte:=0;
    while not art_entree.Eof do
     begin
      monte:=0;
      monte:=(art_entree.fieldbyname('prix').ascurrency*art_entree.fieldbyname('qt').asinteger);
     
      art_entree.edit;
      art_entree.fieldbyname('Montant').ascurrency:=monte;
      art_entree.post;
       montantee:=montantee+monte;
      nb_arte:=nb_arte+1;
      art_entree.next;
     end;
    trouvez moi la faille

  2. #2
    Membre éclairé

    Inscrit en
    Juillet 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 48
    Par défaut
    Il y a que ça, pas de traitement sur les évènements pas de datasource rataché, pas de filtre. Rien d'autre !

  3. #3
    Membre confirmé Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Par défaut
    mais si y'a des datasources et des évenements rataché! sison comment ej pourais faire des traitement sur la base de données.

  4. #4
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Est-ce que ajouter un champ calculé te dit quelquechose ?

    Car, à mon avis, c'est exactement ce que tu cherches à faire..non ?

    Si oui,

    • double-clique sur ton composant nommé art_entree.
      La fenetre de champs de ton composant apparait.
      Clique droite dedans puis "Nouveaux champs"
      Nomme ton champ (par ex: Montant), mets bien le type (ex: Currency) que tu veux
      Choisis bien Type de champ: Calculé
      Clique OK


    ensuite

    Ton composant nommé art_entree a probablement l'évenement OnCalcFields()
    Tu l'implémentes en y mettant un code dansle genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    procedure TForm1.art_entreeCalcFields(DataSet: TDataSet);
    begin
      art_entreeMontant.Value := art_entree.FieldByName('prix').AsCurrency*art_entree.FieldByName('qt').AsInteger;
    end;
    Assures-toi également que la property AutoCalcFields vaut True à ton compo.

    Ainsi, tu a une colonne en plus qui n'existe bien pas dans la base de données mais qui se calcul toute seule qd il le faut. Et ce nouveau champ, tu peux y accéder comme les autres :
    • art_entree.FieldByName('Montant').AsCeQueTuVeux
      ou bien
      art_entreeMontant.AsCeQueTuVeux

  5. #5
    Membre confirmé

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Par défaut
    Non Neilbgr ! il dit que son problème est un message d'erreur.

    smail : Est-ce-que ton message d'erreur apparaît bien lors du
    Si oui, mets un point d'arrêt sur la ligne précédente et passes en mode pas à pas approfondi. Rregardes si, par hasard tu n'effectuerais pas des traitements dans des évènements tels que OnBeforePost.

    J'ai déja eu ce genre de problème qui était provoqué par un appel à la méthode locate dans une procédure que j'ignorais éxécuter à ce moment là.
    La table repassait en mode dsBrowse avant que le post ne se produise d'où le message d'erreur.

  6. #6
    Membre émérite
    Avatar de neilbgr
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2004
    Messages
    651
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Août 2004
    Messages : 651
    Par défaut
    Certes, smail a une exception lors du post...

    Simplement, le code qu'il y fait avant le post pourrait etre largement éviter, donc cela permettrait de ne plus avoir de pb lors du post...
    En gros, y a pas besoin de poster un truc qui pourrait ce faire presque tout seul.

    De plus, un champ Total, Montant, etc, en BDD est pas forcement indispensable, autrement, soit on fait la technique susdite, soit on fait un vrai champ calculé mais dans la BDD cette fois ci...

  7. #7
    Membre confirmé Avatar de smail21
    Profil pro
    Inscrit en
    Février 2005
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : Algérie

    Informations forums :
    Inscription : Février 2005
    Messages : 152
    Par défaut
    neilbgr, merci pour cete nouvelle information que j'expoilterai à l'avenir!
    mais j'ai réglé mon probleme autrement!

    mico : effectivement le probleme etait au art_entree.post et j'ai des locate mais je ne crois pas que c'est la source du probleme
    merci à tout le deux

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

Discussions similaires

  1. [SQL2k5SP1] Maj d'une table par importation
    Par Peck777 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 10/09/2006, 11h39
  2. [8i] MAJ d'une table via un fichier texte
    Par ApprentiOracle dans le forum SQL
    Réponses: 3
    Dernier message: 01/08/2006, 16h08
  3. [JSP]erreur dans parcours d'une table
    Par lcoder dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 06/07/2006, 09h52
  4. Maj d'une table à partir d'une autre
    Par gleferrec dans le forum Oracle
    Réponses: 1
    Dernier message: 24/01/2006, 11h10
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

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