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 :

Vidage de table


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    837
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Février 2003
    Messages : 837
    Par défaut Vidage de table
    Bonjour,

    Je regarde actuellement pour vider une table paradox. J'ai bien regardé sur le site, forums... et j'ai vu deux methodes. Dont une que j'avais deja utilisé.
    Donc par rapport a ces deux methodes il y en a une qui utilise le SQL, ce qui ne m'interresse pas vraiment et une qui utilise le EMPTYTABLE ca ca m'interresse !

    Donc voila ce que je fais :
    J'ai une composant TTable qui s'appelle teintes, placé sur ma Form. Ensuite j'ai un composant TDatasource qui s'appelle DSTeintes.
    Enfin j'ai un DBGrid et un bouton.
    Dans la methode de mon bouton je met ce code ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    teintes.Active:=false;
    teintes.EmptyTable;
    Le probleme que je rencontre est simple mais je ne comprend pas pourquoi :
    Lorsque je clicke sur le bouton il me met : la table est occupée

    Comment faire pour eviter ce message svp ?
    Merci d'avance !
    @++

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut
    Salut,

    comment éviter le problème ?? je n'en sais rien... à priori cela vient du fait que la table est occupée par ailleurs, mais où, faudrait voir la totalité de la source pour cela... et encore...

    essaye ces quelques lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    With Teintes do
       begin
       Active:=true;
       First;
       if RecordCount<>0
          then repeat Delete until EOF;
       Active:=false;
       end;
    Si tu as toujours ton erreur c'est que ta table est réellement occupée ailleurs... et que donc cela ne vient pas du EmptyTable

    Attention toutefois : cette opération ne supprime pas les enregistrements (EmptyTable non plus d'ailleurs) mais les rend non accessibles... la taille de ta table sera donc inchangée... jusqu'à son compactage éventuel...

    @+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2004
    Messages : 66
    Par défaut Re: Vidage de table
    Citation Envoyé par zax-tfh
    Bonjour,

    Je regarde actuellement pour vider une table paradox. J'ai bien regardé sur le site, forums... et j'ai vu deux methodes. Dont une que j'avais deja utilisé.
    Donc par rapport a ces deux methodes il y en a une qui utilise le SQL, ce qui ne m'interresse pas vraiment et une qui utilise le EMPTYTABLE ca ca m'interresse !

    Donc voila ce que je fais :
    J'ai une composant TTable qui s'appelle teintes, placé sur ma Form. Ensuite j'ai un composant TDatasource qui s'appelle DSTeintes.
    Enfin j'ai un DBGrid et un bouton.
    Dans la methode de mon bouton je met ce code ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    teintes.Active:=false;
    teintes.EmptyTable;
    Le probleme que je rencontre est simple mais je ne comprend pas pourquoi :
    Lorsque je clicke sur le bouton il me met : la table est occupée

    Comment faire pour eviter ce message svp ?
    Merci d'avance !
    @++

    Essaye cela ton code :

    teintes.close;
    teintes.open;
    teintes.EmptyTable;

  4. #4
    Expert confirmé

    Avatar de Nono40
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2002
    Messages
    8 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Par défaut
    Attention : supprimer tous les enregistrements n'est pas faire un emptytable. Supprimer tous les enregistrements ne réduit pas la taille du fichier DB.

    Si l'a table est occupée, c'est simplement qu'elle est déjà ouverte ailleurs ( regarde dans l'IDE Delphi, le module BDD etc... )
    Delphi :
    La F.A.Q. , 877 réponses à vos questions !
    264 sources à consulter/télécharger !

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/11/2011, 19h37
  2. Vidage de table MySQL en Perl
    Par Chicard dans le forum SGBD
    Réponses: 5
    Dernier message: 07/11/2008, 16h08
  3. [Oracle 10g] Vidage des tables
    Par LP-mpascolo dans le forum Administration
    Réponses: 7
    Dernier message: 06/12/2007, 11h19
  4. table.delete vidage des tables
    Par lallem dans le forum Delphi
    Réponses: 2
    Dernier message: 22/06/2006, 11h11
  5. vidage de table, aucune reponse claire ??
    Par zax-tfh dans le forum Bases de données
    Réponses: 20
    Dernier message: 21/04/2004, 20h06

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