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 :

supprimer et archiver données de certains champs


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut supprimer et archiver données de certains champs
    bonjour,
    voilà mon probleme,je ne sais pas comment m'y prendre.J'ai une fiche de renseignement pour chaque individu dont les champs sont connectés à ma base group.db.commment faire pour archiver les individus qui seront supprimés et en ne gardant que les champs prénom,nom date de naissance et mettre la date de radiation.Faut il faire une autre base?Comment faire pour ne gardre que certains champs,comment y inclure la date de radiation? Au moment du click de suppression je voudrais que l'archivage soit automatique.
    Mes fiches sont supprimées de dux façons soit avec le DBnavigator soit avec je peux suprimer toutes les fiches qui appartiennent à un groupe d'individis(dans un des champs ils disent à quel groupe ils pappartiennent)
    voilà merci pour votre aide
    Soyez simple je débute.

  2. #2
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88
    Par défaut
    ,

    1.oui tu dois creer une autre table qui contiendra les infos sur les individus supprimés.

    2. ta nouvelle table aura les champs prenom,nom,date de naissance,date de radiation.

    3.pour l'archivage automatique tu peux utilisé un trigger( before DELETE)
    qui va inserer les info dans ta nouvelle table.

    A+.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut archivage
    merci
    mais c'est quoi un triger et comment on l'utilise?
    merci

  4. #4
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tom
    merci King
    Je vais tout lire et je te tiens au courant.

    Jusque là j'avais essayé Batchmove
    j'ai fait une autre table avec 3 champs nom ,prénom, date de naissance
    mais pour les champs Nom prénom pas de probleme par contre pour 'Date de naissance',il ne veut pas le faire.
    par contre j'ai essayé d'utiliser mappings pour résoudre le probleme mais si on veut utiliser mappings je n'y arrive pas .Pourtant
    j'ai mis Nom=Nom
    Prénom=Prénom
    "Date de naissance"="Date de naissance" , les noms des champs étant identiques dans les 2 tables.

    merci

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut archive
    Bon j'ai réussi avec un champ sans espace ;Par contre quand je veux supprimer une fiche de la table il la supprime mais transfère toutes les fiches .Comment n'exporter que la fiche sélectionner?
    merci

  7. #7
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88
    Par défaut
    ,

    tu recupere la clé de l'enregistrement selectionné

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var=Table.FieldByName("CLE").As....
    puis tu fais une requete parametrée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM MATABLE WHERE CLE=:var


    A+.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tomm
    merci king pourrais tu etre plus détaillé car j'ai commencé il ya un mois
    je vais rexpliquer pour etre sur que j'ai bien expliqué:
    pour archiver j'ai utilisé batchmove pour transferer sur un click des champs (table paradox) d'une table qui sont supprimés par l'utilisateur vers une autre table d'archivage.Mais mon probleme vient du fait que je souhaite transferer q'un seul enregistrement,je m'explique:j'ai une fiche de renseignement avec des champs connectés à une table.MAis quand l'utilisateur supprime une fiche de la table ,je souhaite archiver certains des champs dans une autre table.Batchmove m'a permis de transferer avec une relation matre détails de transérer avec batchmove tous les fiches qui appartenaient au meme groupe mais pour un enregistrement dans la table ,comment faire?Avec batchmove?
    merci king

  9. #9
    Membre régulier
    Profil pro
    Architecte logiciel
    Inscrit en
    Octobre 2002
    Messages
    64
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Architecte logiciel

    Informations forums :
    Inscription : Octobre 2002
    Messages : 64
    Points : 88
    Points
    88
    Par défaut
    ,
    BatchMove te permet de copier tous les enrgistrements de la table source donc n'est pas ta solution.

    lorsque tu selectionne l'enregistrement dans le DbGrid(Associé a Table1), tu recupere les infos sur l'enreg selectionné.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Code=Table1.FieldsByName("Cle").AsInteger;
    Nom=Table1.FieldByName("Nom").AsString;
    Prenom=Table1.FieldsByName("Prenom").AsString;
    DateNaissance=Table1.FieldByName("DateNaissance").AsDateTime;
    tu insere dans la 2eme Table.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Table2.Open;
    Table2.Insert;
    Table2.FieldByName("Nom").AsString=Nom;
    Table2.FieldByName("Prenom").AsString=Prenom;
    Table2.FieldsByName("DateNaissance").AsDateTime=DateNaissance.
    Table2.Post;
    Table2.Close.
    Tu supprime l'enreg selectionné.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    Query.Sql.Clear;
    Query.Sql.Add('DELETE FROM TATABLE WHERE CLE=:cl');
    Query.Params[0].AsInteger:=code;
    Query.ExecSql;
    A+.

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tom
    excuse moi mais je suis un ane je crois ,je ne comprends pas malgré tout ce que tu as écrit.En fait il n' y pas de de DBGRid c'est juste une form avec des champs et un DBnavigator.Je voudrais juste quand on supprime un enregistrement Table1.delete faite passer certains champs
    donc des 3 codes, 'cle' qu'est ce que c'est? je dois les mettre où ces 3 codes?Merci
    signé :un gros débutant

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tom
    bon finalement j'ai essayé ça

    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
    procedure TForm2.SpeedButton2Click(Sender: TObject);
     var Code: integer;
         Nom: string;
         Prenom:string;
     
    begin
       if MessageDlg('CONFIRMEZ-VOUS CETTE SUPPRESSION ?',mtConfirmation,[mbOK, mbCancel],0)=mrOK then
      begin
         Code:=Table1.FieldByName('Cle').AsInteger;
         Nom:=Table1.FieldByName('Nom').AsString;
         Prenom:=Table1.FieldByName('Prénom').AsString;
         Table2.Open;
         Table2.Insert;
         Table3.FieldByName('Nom').AsString:=Nom;
         Table3.FieldByName('Prénom').AsString:=Prenom;
         Table3.Post;
         Table3.Close ;
         Query1.Sql.Clear;
         Query1.Sql.Add('DELETE FROM group WHERE CLE=:cl');
         Query1.Params[0].AsInteger:=code;
         Query1.ExecSql;
      end;
    end;
    mais il me répond champ 'Cle' non trouvé
    de plus CLE=:cl 'cl' c'est quoi 'cl'?

    en fait j'ai compris dans la table il y a un numero devant chaque enregistrement que tu veux recuperer mais 'Cle' et 'cl' ?
    merci de ton aide

    [Modération, Seb : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci]

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 58
    Points : 16
    Points
    16
    Par défaut tom
    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
    procedure TForm2.SpeedButton2Click(Sender: TObject);
     var      Nom: string;
         Prenom:string;
     
    begin
       if MessageDlg('CONFIRMEZ-VOUS CETTE SUPPRESSION ?',mtConfirmation,[mbOK, mbCancel],0)=mrOK then
       begin
            Nom:=Table1.FieldByName('Nom').AsString;
            Prenom:=Table1.FieldByName('Prénom').AsString;
            Table3.Open;
            Table3.Insert;
            Table3.FieldByName('Nom').AsString:=Nom;
            Table3.FieldByName('Prénom').AsString:=Prenom;
            Table3.Post;
            Table3.Close ;
            Table1.Delete;
       end;
    end;
    J'ai juste enlever Cle et ça marche .Merci The KING
    [Modération, Seb : Pensez à utiliser la balise [CODE] qui améliore la lisibilité, merci]

Discussions similaires

  1. N'exporter que certains champs d'une base de données
    Par theophile76 dans le forum Requêtes
    Réponses: 18
    Dernier message: 15/03/2013, 14h50
  2. Insertion de donnée selon certain paramètre d'un champs.
    Par lesanglier dans le forum Requêtes
    Réponses: 4
    Dernier message: 03/12/2010, 12h04
  3. [WD-2002] Supprimer Données dans un Champ Access avec Cbx dans Usf
    Par vaucluseimmo dans le forum VBA Word
    Réponses: 34
    Dernier message: 25/11/2009, 10h51
  4. Réponses: 3
    Dernier message: 21/01/2008, 19h28
  5. Réponses: 3
    Dernier message: 26/04/2006, 11h52

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