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 :

delete ajout modif dans la BDD


Sujet :

Bases de données Delphi

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut delete ajout modif dans la BDD
    Bonjour à tous

    j utilise MySQL
    les controle BDE

    j ai une DBGrid qui a comme datasource une TQuery
    toujour sur la même fiche j ai un panel à coté avec les DBEdit qui affichent les données selectionnées dans la DBGrid et evolu si on clic sur le bouton(Ajout) les DBEdit sont vides saisie possible ou si on click sur le bouton(modif) les DBEdit garde les infos avec saisie possible et le un bouton(supprimer) qui suppirime directement la ligne selectinnée du DBgrid.

    Mon problème !? c'est je n ai aucune erreur de delphi à l execution mais aucune mise a jour dans les table de la BDD ?? alors je ne comprend pas ou ça cloche ??

    Je vous presente ici mon code pour vous montrer ma demarche et etre precis dans mes explications. j ai du loupé un trucs ?

    voici les procedures utilisées :
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
     
    // BOUTON SUPPRIMER ZONE
    procedure TF_zone.Btn_supprzoneClick(Sender: TObject);
    begin
    IF MessageDlg ('Etes-vous sûr de vouloir supprimer cet enregistrement ?',
    mtConfirmation,[mbYes,mbNo],0) = mrYes
    THEN
        begin
    // pour faire le lien entre ma requete datasource de ma DGgrid et ma table"zone"
        T_zone.Locate('num_zone',DBgrd_zone.Fields[0].text,[]);
        T_zone.Delete; //la table ou il doit y avoir la suppression
        end;
    end;
     
    // BOUTON AJOUTE ZONE
    procedure TF_zone.Btn_ajoutzoneClick(Sender: TObject);
    begin
    InitVoletVisu (false); // procedure affichage visu ajout modif =>> AJOUT
    Stx_visuzone.caption := 'Nouvelle Zone';
    DbEdt_numzone.enabled := true;
    // pour faire le lien entre ma requete datasource de ma DGgrid et ma table"zone"
    T_zone.Locate('num_zone',DBgrd_zone.Fields[0].text,[]);
    DbEdt_numzone.SetFocus;
    T_zone.Append; //la table ou il doit y avoir l ajout
    end;
     
    // BOUTON MODIFIER ZONE
    procedure TF_zone.Btn_modifzoneClick(Sender: TObject);
    begin
    InitVoletVisu (false); // procedure affichage visu ajout modif =>> MODIF
    Stx_visuzone.caption := 'Modification Zone';
    // pour faire le lien entre ma requete datasource de ma DGgrid et ma table"zone"
    T_zone.Locate('num_zone',DBgrd_zone.Fields[0].text,[]);
    DbEdt_numzone.enabled := false;
    DbEdt_nomzone.SetFocus;
    T_zone.Edit; //la table ou il doit y avoir la modif
    end;
     
    //BOUTON VALIDER AJOUT/MODIF
    procedure TF_zone.Btn_validerzoneClick(Sender: TObject);
    begin
    T_zone.Post;
    InitVoletVisu (true); //procedure affichage visu ajout modif =>> VISU
    end;
     
    // BOUTON ANNULER AJOUT/MODIF
    procedure TF_zone.Btn_annulerzoneClick(Sender: TObject);
    begin
    T_zone.Cancel;
    InitVoletVisu (true); //procedure affichage visu ajout modif =>> VISU
    end;
     
    // POUR INFO
    // PROCEDURE POUR LA GESTION DE L AFFICHAGE PNL VISU AJOUT MODIF 
    procedure TF_zone.InitVoletVisu (affi : boolean);
    begin
    //DbCbo_commune.Visible := NOT affi;
    //DBLookupCBox_numcor.enabled := NOT affi;
    DBText_prenomcor.Visible := affi;
    DBText_datenaiscor.Visible := affi;
    DBText_adressecor.Visible := affi;
    DBText_mailcor.Visible := affi;
    DBText_nomcor.Visible := affi;
    Lbl_nomcor.Visible := affi;
    Lbl_prenomcor.Visible := affi;
    Lbl_datenais_cor.Visible := affi;
    Lbl_adresse_cor.Visible := affi;
    Lbl_mail_cor.Visible := affi;
    Pnl_rechzone.enabled := affi;
    Pnl_validezone.Visible := NOT affi;
    Pnl_visuzone.enabled := NOT affi;
     
    IF affi THEN
    BEGIN
    Stx_visuzone.caption := 'Visualisation Zone'; DBGrd_zone.SetFocus;
    DbEdt_numzone.enabled := true;
    END;
    end;

  2. #2
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    338
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 338
    Points : 383
    Points
    383
    Par défaut
    bonjour

    je ne pratique pas MySql, mais à première vue dans ton code tu prépares à l'enregistrement par Append, et à la modification par édit, mais je ne vois rien qui affecte les données à la base.
    du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ...
    T_zone.Append; //la table ou il doit y avoir l ajout
    T_zone.FieldbyName('Champ1').value := DbEdit1.Text;  // création ou modification des données
    T_zone.FieldbyName('Champ2').value := DbEdit2.Text;
    ....
    T_zone.Post;  // pour valider les modifications
    à plus

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    J ai rajouté ton code dans la procedure du bouton valider ça ne change rien.


    Pour info je bosse sur Delphi 7 entreprise et j utilise un ODBC.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //BOUTON VALIDER AJOUT/MODIF
    procedure TF_zone.Btn_validerzoneClick(Sender: TObject);
    begin
    Q_zone.Close;
    T_zone.FieldbyName('num_zone').value := DBEdt_numzone.Text;
    T_zone.FieldbyName('num_zone').value := DBEdt_nomzone.Text;
    T_zone.FieldbyName('num_zone').value := DBLookupCBox_numcor.Text;
    T_zone.Post;
    Q_zone.Open;
    InitVoletVisu (true); // procédure d'initialisation du volet pnl_visu
    end;

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    ça marche toujour pas dans le code j ai bien changé les FieldByName avec les champ precis de la base !!
    petite erreur d empressement à tester le code !!

    SVP DE L AIDE JE SUIS PAS LOIN DU RESULTAT !!!

    bon code de la procedure bonton valider :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    //BOUTON VALIDER AJOUT/MODIF
    procedure TF_zone.Btn_validerzoneClick(Sender: TObject);
    begin
    Q_zone.Close;
    T_zone.FieldbyName('num_zone').value := DBEdt_numzone.Text;
    T_zone.FieldbyName('nom_zone').value := DBEdt_nomzone.Text;
    T_zone.FieldbyName('num_cor').value := DBLookupCBox_numcor.Text;
    T_zone.Post;
    Q_zone.Open;
    InitVoletVisu (true); // procédure d'initialisation du volet pnl_visu
    end;

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Q_zone , c'est une requete qui affiche les données de ta table ?
    T_zone, c'est la table où il y a tes données ?
    Tes Db* (Edit/lookup/etc..) sont reliés par un datasource et à quelle source (Q_zone ou T_zone) ?
    Modérateur Delphi

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

  6. #6
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Q_zone
    est la requete qui s affiche dans mon DBGrid elle se modifie selon le choix des recherche ou resultat choisi par l utilisateur.
    Elle affiche les donnée de Table zone avec rajout de champ d aytre table (ex pour afficher le nom du num_cor(cle etrangere) qui se trouve dans ma table adherent). datasource DS_Qzone avec dataset Q_zone

    T_zone (num_zone,nom_zone,num_cor#)
    c'est bien la table avec les données DBEdit et DBlookupcombox on comme datasource DS_zone avec dataset T_zone.

    Donc cest pour cela que j utilise la ligne suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    T_zone.Locate('num_zone',DBgrd_zone.Fields[0].text,[]);
    pour faire le lien entre ma DBGrid qui pointe sur Q_zone et mes DBEdit et DBLookupCommbox qui pointe sur T_zone.

    esperant avoir repondu a tes question.

    pour info ce qui me trouble c est que j ai aucune erreur de compilation ni d execution de Delphi ni MySQL par contre j ai aucune modification ou ajout ou delete dans ma table.
    Maintenant je pense ne pas avoir tout saisi dans mes lectures sur Post Append et Delete... ni de l interet de afterpost afterdelete. je ne c est pas je me retrouve un peu perdu.
    merci de ton interet pour ma discution.

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    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 235
    Points : 8 504
    Points
    8 504
    Par défaut
    test avec le code si dessous et dis moi le résultat que tu auras

    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
     
    //BOUTON VALIDER AJOUT/MODIF
    procedure TF_zone.Btn_validerzoneClick(Sender: TObject);
    begin
    if T_zone.State in [dsEdit,dsInsert] then
    begin
      Q_zone.Close;
      T_zone.FieldbyName('num_zone').value := DBEdt_numzone.Text;
      T_zone.FieldbyName('nom_zone').value := DBEdt_nomzone.Text;
      T_zone.FieldbyName('num_cor').value := DBLookupCBox_numcor.Text;
      T_zone.Post;
      Q_zone.Open;
      Showmessage('Post');
    end else
      Showmessage('Pas eu de post');
    InitVoletVisu (true); // procédure d'initialisation du volet pnl_visu
    end;
    Modérateur Delphi

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

  8. #8
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Alors en rajoutant ton code il m ouvre une boite de dialogue avec marqué post est m invite clicker sur ok la boite de dialogue ce ferme et les modifications ne son pas pris en compte dans la DBGrid ni quand je consulte ma BDD avec phpMyAdmin.

    pour info j ai d autre TQuery sur ma fiche
    1./ Q_nbzone qui me donne le nombre de zone que j affiche dans une DBtext.

    D'autre part je fais j ai fais 3 autres Tquery que j ai lié à ma Tquery principale Q_zone pour afficher des champ supplémentaire dans ma DBGrid.

    Q_nbadhaj (nombre adherent a jour de cotisation par zone) le champ est ajouter dans la DBGrid par un champ réferencé avec comme clé de joiture "num_zone".
    Q_nbtotaladh (nombre total d adherent par zone) le champ est ajouter dans la DBGrid par un champ réferencé avec comme clé de joiture "num_zone".
    Q_cornajmail (mail des correspondant de zone non a jour de cotisation) le champ est ajouter dans la DBGrid par un champ réferencé avec comme clé de joiture "num_zone".

    Le problème ne viendrai t il pas de la ??

    Deplus dan ma TQuery Q_zone je ne lui est pas spécifié de datasource ?
    faut il que je lui mette DS_zone(dataset T_zone) avec dans ma requete SQL
    une jouinrure du style WHERE num_zone = :num_zone. pour recuperer ensuite le champ num_zone dans Params. Je ne suis pas sur de l interet ?

  9. #9
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Points : 18
    Points
    18
    Par défaut
    Merci Malatar pobleme reglé..
    les modifications ne se faisaient pas apres nos modofications car l option de ma Ttable T_zone CachedUpdates était à true !!!
    Bon je suis enfin sortie de ce problème !
    merci merci de votre aide. :yaisse2:

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

Discussions similaires

  1. [MySQL] Ajout et modification dans ma bdd
    Par polux31 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2011, 09h07
  2. Ma fonction insert n'ajoute rien dans la BDD ?
    Par Raiden1234 dans le forum Hibernate
    Réponses: 1
    Dernier message: 24/06/2009, 11h12
  3. jLabel et modification dans une bdd
    Par jbmen dans le forum JBuilder
    Réponses: 1
    Dernier message: 23/04/2008, 00h46
  4. [MySQL] Valeur qui ne s'ajoute pas dans une BDD
    Par Luverger dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 09/02/2007, 11h04
  5. Problème d'ajout multiples dans un BDD Access
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 3
    Dernier message: 31/05/2004, 13h34

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