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

C++Builder Discussion :

N° auto d'une table


Sujet :

C++Builder

  1. #1
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut N° auto d'une table
    Bonjour,

    LE PROBLEME :
    Aprés avoir ajouter, inserer, supprimer et editer des enregistrements dans ma table TAB1, je me retrouve avec des valeurs non monotones (1,2,3, ...) du champ définie comme numéro automatique dans ma BD.

    MA QUESTION :
    Je cherche à redéfinir (recalculer) un champ de type (numéro automatique) pour une table sous une BD Access.

    MON IDEE :
    Peut-on utiliser les requettes SQL à cette fin.
    ou autre chôse.

    Merci

  2. #2
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonsoir,

    Je m'explique :

    Suite à un clique sur un bouton, je cherche à donner un numéro croissant de 1 à un champ (NumAuto) pour l'ensemble d'enregistrement de ma table.


    Merci de m'aider svp .

  3. #3
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    2 options s'offrent à toi :
    -Tu mets ton champs sous forme de NuméroAuto et tu laisses ton SGBD se débrouillait avec (même s'il y a des trous suite à des suppressions)
    -Tu mets ton champs sous forme d'entier et tu créés une méthode te permettant de rechercher la dernière valeur ou les valeurs absentes.

  4. #4
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Citation Envoyé par bakaneko
    2 options s'offrent à toi :
    -Tu mets ton champs sous forme de NuméroAuto et tu laisses ton SGBD se débrouillait avec (même s'il y a des trous suite à des suppressions)
    OK, c'es-ce que j'ai fais, alors comment dois-je faire rédonner des nouvelles valeurs de 1 -> ... pour ce champ.

    Merci.

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Citation Envoyé par kmaniche
    OK, c'es-ce que j'ai fais, alors comment dois-je faire rédonner des nouvelles valeurs de 1 -> ... pour ce champ.

    Merci.
    Je ne vois pas le problème, désolé...

  6. #6
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonjour,

    je m'explique :

    dans une table T1(ID, CH1, CH2) où ID est sous forme autoincrémentable.

    si j'ai 30 enregistrements, je vais supprimer ceux ou ID = 20,21,22,23.

    Donc si je visualise la table, sur le champ ID j'aurai de 1,2,3,4 ... 19, ensuite je vais avoir 24,25,...30.

    Le problème c'est que j'ai une discontinuité de 19 -> 24, donc je cherche comment reordonné ce champ de 1 -> 26

  7. #7
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Personnellement, je ne vois qu'une seule option :
    Faire une méthode faisant :
    -Recherche de tous tes enregistrements triés selon leur identifiant
    -Recherche des trous au niveau des enregistrements
    -Mise à jour des valeurs de ton champs identifiant pour refaire la continuité

    Nb1 :Cela ne tient qu'à moi mais je ne vois pas l'intéret de faire ceci... Que ta suite d'identifiants soit continue ou pas ne t'apportera rien. De plus, si cet identifiant te sert dans une autre table pour faire une relation entre les enregistrements des 2 tables, tu vas devoir également modifier la deuxième table...

    Nb2 : A ma connaissance, même les SGBDR genre Oracle et autres laissent des trous en cas de suppression...

  8. #8
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    J'ai essayer de faire la modification mais une erreur : Impossible de modifier un champ de type autonum.

    Y'a t'il un autre moyen

  9. #9
    say
    say est déconnecté
    Membre Expert
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Par défaut
    Alors, d'abord...
    avoir une clé primaire continue ne présente aucun intérêt mais en plus ceal va à l'encontre des principes de bases de données.
    Les enregistrements ne sont pas ordonnancés..c'est le but d'un ORDER BY...

    Ensuite...c'est de l'Access et pas du Builder non?

    Sinon, une solution consiste à créer un nouveau champ en num auto...à supprimer l'autre et à renommer le nouveau.

    Le problème c'est la gestion des contraintes.
    Ta clé primaire..peut etre une clé étrangère dans une autre table donc tes enregistrements ne seront plus liés..
    donc on en revient au principe du : aucun intérêt de réorganiser un num auto...

    bon courage

  10. #10
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    OK merci pour tous. j'ai pigé

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

Discussions similaires

  1. [AC-2010] Champ auto dans une table
    Par miyano dans le forum Access
    Réponses: 13
    Dernier message: 26/04/2013, 17h42
  2. [AC-2010] saisie auto dans une table à partir d'une autre table
    Par Poisell dans le forum Modélisation
    Réponses: 5
    Dernier message: 01/06/2012, 15h45
  3. Empecher la mise a jour auto d'une table
    Par SnakeCharmer dans le forum IHM
    Réponses: 2
    Dernier message: 03/04/2008, 15h04
  4. Date et Heure Auto dans une table
    Par zoreille6 dans le forum Access
    Réponses: 5
    Dernier message: 11/01/2007, 12h45
  5. access remplissage auto d'une table
    Par bjornd dans le forum Access
    Réponses: 2
    Dernier message: 09/11/2005, 08h05

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