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 :

comment supprimer plusieurs enregistrements


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut comment supprimer plusieurs enregistrements
    voilà,j'ai une table détail et je veux supprimer tous les enregistrements de cette table d'un seul coup.Comment faire svp?

  2. #2
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Salut.
    N'ayant pas connaissance du techno utilisé; je dirais que tu devrais execute cette requête sur cette table.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE FROM TATABLE
    Sinon, tu devrais parcourir ta table et exécuter la méthode Delete sur chaque enregistrement.

    A+

  3. #3
    Membre expérimenté
    Avatar de didier.cabale
    Homme Profil pro
    Conseil - Consultant en systèmes d’information
    Inscrit en
    Août 2004
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d’information
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2004
    Messages : 130
    Par défaut
    Citation Envoyé par NABIL74 Voir le message
    j'ai une table détail et je veux supprimer tous les enregistrements de cette table d'un seul coup.
    S'il s'agit d'une TTable, je crains que çà ne soit pas possible.
    En revanche s'il s'agit d'un TQuery, vous pouvez utiliser une instruction SQL du type 'delete from matable where condition'
    Cordialement

  4. #4
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    voici le code que j'ai écrit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DM.TNotes.Edit;
    DM.TNotes.First;
    DM.TNotes.Delete;
    DM.TNotes.Next;
    mais il ne supprime qu'un seul enregistrement c'est tout.

  5. #5
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Essaie un peu ceci. Il fut quand même parcourir les enregistrements et les supprimer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    With DM.TNotes do
    begin
        First;
        While Not eof do
        begin
            Delete;
            Next;
        end;
    end;

  6. #6
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2008
    Messages
    668
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 668
    Par défaut
    voila tout mon code:
    je fais d'abord un filtre sur la table "notes" et puis je supprime les enregistrements trouvés en suivant le filtre effectué:
    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
    DM.TNotes.Filtered:=false;
    DM.TNotes.Filter:='Num_classe = '''+(DBEdit1.Text)+'''';
    DM.TNotes.Filtered:=true;
     
    if messageDlg('Etes-vous sûr de vouloir supprimer cette classe?',mtinformation,
    [mbOK,mbCancel],0)=mrOK then begin
     
    With DM.TNotes do
    begin
    First;
    While Not eof do
    begin
    Delete;
    Next;
    end;
    end;
    end;
    end;
    mais il efface 2 enregistrements seulement!???

  7. #7
    Membre éprouvé
    Avatar de Andry
    Profil pro
    Informaticien
    Inscrit en
    Juillet 2002
    Messages
    1 164
    Détails du profil
    Informations personnelles :
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 164
    Par défaut
    Je vais te donner ma methode :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    With TQuery.Create(Nil) do
    try
      //Ici paramétrage des connextion ou Alias
     //generation de la requête. Supposons que ta table s'appelle TNOTES
     SQL.Add('DELETE FROM TNOTES');
     SQL.Add('Where Num_classe = :PNUM_CLASSE');
     //Affectation du paramètre
     ParamByName('PNUM_CLASSE').AsString := DBEdit1.Text;
     //Execution de la requête
     ExecSQL;
    finally
       Free;
    End;
    PS : Il faut ptet changer un ou deux trucs en fonction du composant Query utilisé vu que je n'ia pas Delphi sous la main .

    A+

  8. #8
    Expert confirmé
    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 : 62
    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
    Par défaut
    Salut
    Citation Envoyé par NABIL74 Voir le message
    mais il efface 2 enregistrements seulement!???
    Simplement parce que le Next est en trop dans la boucle.

    Mais la méthode la plus simple et surtout plus efficace est celle présentée par Andry via SQL.

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM TA_TABLE WHERE Condition;

    @+ Claudius

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 119
    Par défaut
    Et pourquoi ne pas avoir fait tout simplement un EmptyTable sur la table

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    taTable.EmptyTable;
    Jeankiki

  10. #10
    Membre éclairé
    Inscrit en
    Juin 2008
    Messages
    324
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 324
    Par défaut salut
    salut.
    ma table est une adotable,je pense que emptytable n'existe pas avc adotable.
    cordialement.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2011, 11h40
  2. comment supprimer plusieur enregistrements a la fois
    Par medreg dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/03/2011, 08h44
  3. [C#] Comment supprimer un enregistrement de la table ?
    Par paradeofphp dans le forum Accès aux données
    Réponses: 12
    Dernier message: 03/08/2006, 09h59
  4. Réponses: 1
    Dernier message: 28/01/2006, 12h36
  5. HELP!Comment supprimer des enregistrements de tables jointes
    Par ROOTPARIS dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 10/06/2004, 16h41

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