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 :

Détecter un changement dans un enregistrement


Sujet :

Bases de données Delphi

  1. #1
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut Détecter un changement dans un enregistrement
    salut

    ma configuration :
    Delphi7 et Access 2003.

    Problème:
    Lors d'une opération de recherche, le curseur pointe sur l'enregistrement concerné et ces donnés s'affichent sur des dbcontroles sur ma fiche.
    Comment je peux détecter si un changement est apparu sur l'enregistrement
    lors des changements dans les dbcontroles.

    cordialement rec82. .

  2. #2
    Membre actif Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Points : 261
    Points
    261
    Par défaut
    Salut,
    vous pouvez l'evenement ondatachange du dataset, ou appuyez sur F1 Help ya pas mal d'exemples.

  3. #3
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    merci liazid.
    mais j'ai pas compris les exemples.
    je formalise mon question pour la 2ieme fois:
    j'ai :un boutton Rechercher ,un DBgeid, un button Enregister, et des DBEDIT et DBCHECKBOX.
    ce que je veut lorsque je clique sur Rechercher le pointeur pointe sur l'enregistrement concerné ,ces donnés s'affiche dans les dbcontroles,
    lorsque je modifier un dbcontrole(dbedit,dbcheckbox) le boutton Enregister le caption de button change "enregistrer modification," et quand je clique sur elle il enregistre les modification.
    cordialement rec82

  4. #4
    Membre actif Avatar de liazidf
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Mai 2002
    Messages : 281
    Points : 261
    Points
    261
    Par défaut
    Citation Envoyé par rec82 Voir le message
    merci liazid.
    mais j'ai pas compris les exemples.
    je formalise mon question pour la 2ieme fois:
    j'ai :un boutton Rechercher ,un DBgeid, un button Enregister, et des DBEDIT et DBCHECKBOX.
    ce que je veut lorsque je clique sur Rechercher le pointeur pointe sur l'enregistrement concerné ,ces donnés s'affiche dans les dbcontroles,
    lorsque je modifier un dbcontrole(dbedit,dbcheckbox) le boutton Enregister le caption de button change "enregistrer modification," et quand je clique sur elle il enregistre les modification.
    cordialement rec82
    Bonsoir,
    Votre exemple ne peut pas fonctionner, car il faut au préalable mettre votre table en mode EDIT, ensuite faire le test sur les dbcontrol... (OldValue -> NewValue), et c'est ce test qui va permettre d'inhiber où non le bouton ENREGISTER.

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut

    voici un petit exemple dont tu peux l'adapter selon ton besoin

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TonDataModule.TonDataSetStateChange(Sender: TObject);
    begin
      with TonFormulaire do
      begin
        bValider.Enabled := (TonDataSet.State in [dsInsert, dsEdit]);
        bAnnuler.Enabled := bValider.Enabled;
        if (TaTable.Active) then
          StatusBar1.Panels[1].Text := Format('Nombre d''enregistrement(s) : %d',
                                          [TaTable.RecordCount]);
      end
    end;
    j'ai supposé que tu as deux boutons et un statusbar. un bouton pour l'enregistrement "valider" et un autre pour l'annulation "annuler" et le statusbar pour recevoir le nombre d'enregistrements exact.

    j'espère avoir compris et répondu à ta question.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  6. #6
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut
    merci beaucoup Just-Soft t,c'est ce que je veut exactement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure TForm1.DataSource1StateChange(Sender: TObject);
    begin
     with form1 do
      begin
        Valider.Enabled := (adotable1.State in [dsInsert, dsEdit]);
        Annuller.Enabled := Valider.Enabled;
        if (adotable1.Active) then
          StatusBar1.Panels[1].Text := Format('Nombre d''enregistrement(s) : %d',
                                          [adotable1.RecordCount]);
     
      end
    end;
    dans le boutton valider:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if  adotable1.State in [dsedit,dsinsert] then
         adotable1.Post;
    dans le boutton Annuller

    une petite question :
    est ce que les changements dans les dbcontrols c'est celui qui déclenche l'évenement onStateChange de datasource .
    merci cordialement.rec82

  7. #7
    Expert éminent sénior
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Points : 10 008
    Points
    10 008
    Par défaut
    Citation Envoyé par rec82 Voir le message
    une petite question :
    est ce que les changements dans les dbcontrols c'est celui qui déclenche l'évenement onStateChange de datasource .
    Oui, la propriété State du DataSource reflète celle du DataSet.
    Donc tous changements d'état (dsBrowse, dsInsert, dsEdit, ...) déclenche l'évènement OnStateChange.

    @+

  8. #8
    Membre actif
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Points : 217
    Points
    217
    Par défaut salut
    salut
    merci Cl@udius et à tout.
    je peut mettre resolu

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

Discussions similaires

  1. Détecter un changement dans une base de données
    Par phpeur dans le forum Langage
    Réponses: 10
    Dernier message: 19/04/2010, 11h52
  2. Détecter un changement dans une table SQL
    Par DEV-10 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 02/06/2009, 19h47
  3. [MySQL] comment détecter un changement dans une table
    Par acheo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/05/2009, 00h38
  4. Détecter les changements dans un fichier qui alimente une table
    Par yacinechaouche dans le forum Requêtes
    Réponses: 2
    Dernier message: 23/06/2008, 17h56
  5. Détecter tout changement dans un formulaire
    Par Paco35 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 29/05/2008, 10h20

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