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 :

Suppression dans DBase


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Par défaut Suppression dans DBase
    Bonjour,
    Je rencontre un sérieux problème
    J’ai une application sous COBOLE
    Elle est un peut lourde
    Pour cela j’ai développé une application sous windows avec delphi et des tables DBase ‘DBF’
    Mais le problème et que a chaque suppression d’enregistrement sous delphi une fois mes tables sous dos DBU ‘DBase’ je me retrouve avec des enregistrement en double donc pas de suppression physique sous delphi par exemple si je veux vider une table avec Emptytable ça marche toute la table est vide est a la prochaine insertion sous delphi le premier enregistrement est a 1
    Par contre avec delete la taille n’est pas réduite si avant la suppression le nombre d’enregistrement est 400 donc après la suppression le premier a le numéro 401
    Comment faire c’est très urgent aide moi.
    Merci d’avance.

  2. #2
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Salut,

    Si je comprend bien, ce numéro que tu mentionnes est une clé primaire; il n'indique par forcément "le nombre d'élément" de ta table, mais est un pointeur unique vers un enregistrement.

    En fonction des bases de données, tu as des outils pour optimiser l'espace utilisé par les tables, mais tes clés primaires ne changeront pas; c'est fait exprès, ça permet de conserver l'intégrité référentielle.

    A+

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Par défaut urgent
    merci pou ta reponce
    ce numéro que je mentionnes n'est pas une clé primaire; il indique le nombre d'enregistrement de ma table generer automatiquement sous delphi ds le module base de donnée c'est un numero incrementable se n'est pas un champ.

    donc comment faire pour optimiser l'espace utilisé par les tables,apres la suppression d'un enregistrement pour ne plus le trouve sous dos.
    merci

  4. #4
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    De rien,

    Le numéro auto-incrementable est "en général" utilisé comme clé primaire car il permet justement de conserver l'intégrité référentielle. Le comportement est normal, tout ce que tu peux faire c'est optimiser l'espace disque utilisé, et pour ça il faut regarder du coté de la doc de ta base de données.

    Pour bien comprendre pourquoi ça fait cela, c'est simple : imaginons ton enreg 400, sur lequel pointe une autre table.

    400 represente ta commande

    et sur une autre table, ligne de commande pointe dessus.

    ligne de commande 1 -> 400
    ligne de commande 2 -> 400

    Maintenant, tu décides de supprimer ton enreg 400. Tes lignes ne commande continuent à pointer sur l'enreg 400 même si il n'existe plus, ce qui est normal; Imagine tu insères un nouvel enregistrement, totalement différent, dans la même position ( 400 ) et bien tu auras un problème, car tes lignes de commandes pointeront dessus alors qu'elles ne doivent pas.

    A+

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2003
    Messages
    118
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 118
    Par défaut dbase
    avec delete les enregistrement sont supprimer ds delphi mais une fois mes tables sous DBU sous dos je retrouve tout les enregistrement supprimer sous delphi.

  6. #6
    Membre Expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 890
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 890
    Par défaut
    Citation Envoyé par colombe
    avec delete les enregistrement sont supprimer ds delphi mais une fois mes tables sous DBU sous dos je retrouve tout les enregistrement supprimer sous delphi.
    Je ne comprend pas bien ce que tu dis, peux-tu être plus précis ?

    La commande SQL DELETE FROM efface des enregistrements.
    La commande SQL DROP TABLE efface la table et les enregistrements.

  7. #7
    Membre chevronné Avatar de Bejaia-In
    Inscrit en
    Avril 2006
    Messages
    365
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 365
    Par défaut
    Je crois que les tables de base de données DBase permettent une suppression des enregistrements en deux étapes, a la première étape l'enregistrement est simplement occulté puis en 2eme étape il est supprimé physiquement de la table.
    Peut-être que ton problème viens de la.

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

Discussions similaires

  1. Problème de suppression dans une table
    Par Splinter dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/10/2005, 10h55
  2. [Debutant]Suppression dans des tables avec contraintes
    Par Roming22 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 26/10/2004, 17h23
  3. Combler les trous lors d'une suppression dans une table
    Par Billybongjoe dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 08/04/2004, 14h02
  4. [LG]suppression dans une liste chainée
    Par mister_dsg dans le forum Langage
    Réponses: 9
    Dernier message: 16/12/2003, 21h20
  5. [LG]suppression dans un fichier
    Par cedrick essale dans le forum Langage
    Réponses: 5
    Dernier message: 10/08/2003, 15h22

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