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

Langage Delphi Discussion :

Effacer tous les enregistrements d'une table


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Effacer tous les enregistrements d'une table
    Je précise que j'utilise Delphi 7 et Comme SGBD paradoxe 7 et j'aimerais effacer tous les enregistrements d'une table que j'ai créée. Après des fouilles,
    Il me semblait que la ligne de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With Table1 do 
       begin
          Active :=False ;
        DataBaseName:=' ';
         TableName :=' ';
         TableType :=ttParadox;
          EmptyTable ;
         end;
    Pouvait marcher mais rien du tout. J'ai le message d'erreur : La table n'existe pas. Si quelqu'un peut m'aider merci.

  2. #2
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With Table1 do 
    begin
          Active :=False ;
          EmptyTable ;
    end;

  3. #3
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Je viens de rentrer la ligne de commande indiquée et il me dit que la table est occupée. Cela peut provenir de quoi ?
    Merci.

  4. #4
    Membre éclairé Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Points : 717
    Points
    717
    Par défaut
    Salut,

    Ce message d'erreur survient lorsque la table est ouverte au démarrage de l'application. Feme la et ça devrait marcher.

    A+.
    For crying out loud !

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    J'ai essayé aussi cette ligne de commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    With Query1 do 
    begin
       SQL.Clear ;
      SQL.Add('DELETE *FROM " Chemin où se trouve la table créée" ');
       ExecSQL;
    end;
    Là encore, il me met le message d'erreur suivant :

    Le projet rangetest.xe a provoqué une classe d'exception EDBEngineError avec le message' Utilisation incorrecte du mot-clé.
    Elément :*
    Numéro de ligne :1'. Processus stoppé. Utilisez Pas-à-pas ou Exécuter pour continuer.

    Quelqu'un a bien in conseil à me donner. Merci d'avance.

  6. #6
    Expert éminent
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 663
    Points : 6 949
    Points
    6 949
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      SQL.Add('DELETE *FROM " Chemin où se trouve la table créée" ');
    Il ne faut pas d'étoile !

    C'est delete from ...
    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. ___ Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.3.2 Entreprise - Delphi 10.4.2 Entreprise
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (11.6 - 14.6)

  7. #7
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Merci PADAWANDUDELPHI et ALWEBER,

    Le code proposé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    With Table1 do
    begin
    Active:=False;
    EmptyTable;
    end;
    Il faut avant tout fermer la table au demarrage de l'application.
    Merci mille fois les gars.

  8. #8
    Membre émérite
    Avatar de ALWEBER
    Homme Profil pro
    Expert Delphi
    Inscrit en
    Mars 2006
    Messages
    1 483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Expert Delphi

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 483
    Points : 2 734
    Points
    2 734
    Billets dans le blog
    10
    Par défaut
    Je viens de rentrer la ligne de commande indiquée et il me dit que la table est occupée. Cela peut provenir de quoi ?
    Merci.
    Celà provient du fait qu'en phase de conception ton objet TTable est actif.
    Tu n'aurais pas eu cette erreur si ton Delphi était fermé.

    Un delete via une petite requête SQL est le mieux

  9. #9
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Lung, Merci aussi car sans l'étoile (*) dans le code en langage SQL, ça marche.
    Thanks a lot.

  10. #10
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    11
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 11
    Points : 11
    Points
    11
    Par défaut essayez cette methode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TForm1.BitBtnClick(Sender: TObject);
     
    begin
    while not table.Eof do
    begin
    table.First;
      table.Delete;
     
      end ;
       table.Next;
      end;

  11. #11
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 429
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 429
    Points : 24 794
    Points
    24 794
    Par défaut
    Tu réponds à un sujet résolu depuis 2007 alors que l'on est en 2013 !
    Merci de ne pas déterrer des sujets !

    Dommage, ta proposition est peu performante face à SQL DELETE ou face à la méthode prévue à cette effet EmptyTable

    Si tu as eu des problèmes avec EmptyTable(), il faut aussi penser à Exclusive

    Si tu as une contrainte imposée par ton professeur, le code suivant, plus court, devrait être tout aussi fonctionnel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Table.First;
    while not Table.IsEmpty() do
      Table.Delete(); // Delete supprime l'enregistrement actif et positionne l'ensemble de données sur l'enregistrement suivant.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. Supprimer tous les enregistrements d'une table
    Par kroma23 dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/05/2008, 17h04
  2. Réponses: 3
    Dernier message: 13/05/2007, 11h36
  3. Effacer tous les enregistrements d'une table
    Par plutonium719 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/08/2006, 16h05
  4. Réponses: 7
    Dernier message: 30/05/2006, 12h00
  5. Afficher tous les enregistrements d'une table
    Par bertrand_declerck dans le forum QuickReport
    Réponses: 2
    Dernier message: 08/07/2005, 09h35

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