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 vider une table ?


Sujet :

Bases de données Delphi

  1. #1
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut Comment vider une table ?
    tu ma dit dutiliser delete from ma table

    mais moi jutilise des tables paradox voila ce que jai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    table2.first
    while not table2.eof do
      begin 
       table2.delete;
       Table2.next;
     end;
    mais ici delete supprime il ne vide pas je texplique si par exemple jai 5 enregistrement donc jutilise 5 position des que je supprime il supprime les 5 enregistrement mais quand je commence linsertion il commence de la 5eme position il ne se renisialize pas a 0 position tu comprend se que je veux dire

    mais avec empty il renisialize la table a 0 position pui tu peux inserer


    merci

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 798
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 798
    Points : 25 798
    Points
    25 798
    Par défaut
    Delphino7, tu réponds à qui ?

    Le Next est en trop, cela n'efface qu'un enregistrement sur deux ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    table2.first
    while not table2.eof do
      Table2.delete;
    end;
    le Delete, repostionne, et le OEF est recalculé ...

    Sinon, EmptyTable du TTable, c'est fait pour !
    dans l'aide, onglet rechercher, tu aurais fait "vider table", il t'aurait donné ce que tu cherchais ...
    apprend à utiliser la Touche F1 ...

    Et si ton problème est lié à l'AutoInc, il me semble que l'on peut modifier la valeur de Champ, il faut changer, ReadOnly sur le TField ... c'est quelque part écrit sur le forum ...


    , fait des phrases plus courtes, et surtout, les mots possèdent une orthographe définie, utilise la ! comme "Réinitialiser"

  3. #3
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    ok je vais le faire F1 et je vais voir


    merci

  4. #4
    Membre expérimenté
    Avatar de randriano
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 219
    Points : 1 438
    Points
    1 438
    Par défaut
    Rien de plus simple : une requete DELETE sans WHERE
    => DELETE * FROM NOM_TABLE

    (http://delphi.developpez.com/faq/?pa...#bddvidertable)

  5. #5
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    attendez svp vous voulez dire avec cette requete elle vide la table completement et elle est renisializer a 0 (zero) des que je veux inserer un enregistrement il commence a inserer de la ppsition 0 de la table c sa ?


    merci

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 798
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 798
    Points : 25 798
    Points
    25 798
    Par défaut
    Qu'appeles-tu la position ?
    La Valeur d'un AutoInc ? Le RecNo ?
    Il n'y a pas de Position dans une Table, mais une clé Primaire qui ordonne les données ... puis des index pour accélérer les filtres ou locate, ainsi que permettre des affichages avec tri ...

  7. #7
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    je veux dire par la position quand tu fait un delete dans la 10eme ligne apres tu fait un insert et la premiere ligne est vide dans la table il commence a inserer de la 10eme ligne il ne va pas chercher le vide qui est avant la 10eme ligne mais quand tu vide avec empty apres tu fait un insert sil trouve la premiere position vide il commence par la premiere apres il cherche la second vide ect

    je ne sais pas es que c juste mais quelquun ma dit sa parce que il a trouver que sa table est rempli meme quand il fait un delete apres avoir fait un empty sa table c vider et renisializer je parle du phisique ok


    si je me trompe je vous pose la seul queston qui rependra je lespere a ma logique

    es que table.emptytable =(egale) table.delete?



    merci de rependre svp


    merci

  8. #8
    Expert éminent sénior

    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 : 57
    Localisation : France, Loir et Cher (Centre)

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 8 640
    Points : 19 104
    Points
    19 104
    Par défaut
    La seule différence entre DELETE FOM MaTable et TTable.Empty c'est que la table du fichier .DB est réduite avec le Empty.

    Sinon au niveau des "position" ton message n'est pas clair, dans tous les deux cas ci-dessus le première enregistrement ajouté sera seul en début de table.

    Avec ce que je comprend de ton message, tu effaces une ligne et ensuite quand tu en ajoute une elle ne se met pas à la ligne supprimée mais à la suite ? Je comprends alors que tu n'as pas d'index du tout sur ta table. Le fait de supprimer des enregistrement n'a alors aucune influence sur le fait des ajouter à un endroit ou a un autre. C'est au moment de l'INSERT que tu dois d'abord te placer sur le bon enregistrement de la table pour qu'il soit ajouté au bon endroit. Si tu veux ajouter en fin de table c'est APPEND
    Je précise bien que cette différence ai vrai seulement si tu n'as pas d'index, avec un index Insert et Append placent l'enregistrement dans la table à sa position définie par l'index.

  9. #9
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    tres bien tu as vraiment compris se je voulai dire merci

    et tu as eclerci mes idees oui je nest pas dindex c vrai je vais indexer ma table et avec le append tu veux dire quand je fait sa :

    table1.append //il ajoute un enregistrement a partir du dernier enregistrement ?


    merci

  10. #10
    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 : 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
    Points : 10 008
    Points
    10 008
    Par défaut
    Salut
    Citation Envoyé par delphino7 Voir le message
    table1.append //il ajoute un enregistrement a partir du dernier enregistrement ?
    Citation Envoyé par Nono40 Voir le message
    Si tu veux ajouter en fin de table c'est APPEND
    La réponse est oui, mais tenant compte de cette remarque:
    Citation Envoyé par Nono40 Voir le message
    Je précise bien que cette différence ai vrai seulement si tu n'as pas d'index, avec un index Insert et Append placent l'enregistrement dans la table à sa position définie par l'index.
    @+

  11. #11
    Membre régulier
    Inscrit en
    Mars 2008
    Messages
    312
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 312
    Points : 92
    Points
    92
    Par défaut
    merci c resolu alors

    merci

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

Discussions similaires

  1. [phpMyAdmin] Comment vider une table entre deux dates ou entre deux id avec phpMyAdmin
    Par patrmich dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/05/2014, 15h48
  2. comment vider une table de tous ses enregistrements ?
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 29/07/2005, 11h19
  3. comment vider une base de donnée
    Par caps_corp dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 21/04/2004, 17h54
  4. Comment Copier une table dans un fichier?
    Par thx2003 dans le forum Requêtes
    Réponses: 2
    Dernier message: 15/12/2003, 13h09
  5. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 12h30

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