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

ASP Discussion :

probleme avec numero auto


Sujet :

ASP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut probleme avec numero auto
    Bonjour
    J'ai fait une petite requête pour afficher le numéro de nouveau adhérent :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    sql="select top 1 num_adherent  from souscription order by num_adherent desc"
    		set rs=server.CreateObject("ADODB.RECORDSET")
    		rs.open sql,conn
    		if not rs.eof then
    		nouveau_adherent=Formatnumber(rs("num_adherent"),0)+1
    		else
    		nouveau_adherent=410000001
    		end if
    Le numéro d'adhérent est un numéro auto qui commence de 410000001 et incrémente par 1, mon soucis c'est que si je supprime un adhérent, le dernier par exemple, supposant que c'est le numéro 15 quand je vais faire ma requete il va me donner le top 1 c'est 14, alors le résultat qui va s'afficher est 15 mais le numéro auto va passer directement sur 16 parce que le 15 est déjà supprimé.
    Est ce qu'on peut forcer le numéro auto a prendre toujours le dernier numéro +1?
    j'utilise SQL SERVER 2000.
    Merci D'avance.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 19
    Points : 18
    Points
    18
    Par défaut
    Personnellement, j'évite le plus possible les 'numéros auto'. Il cause des problèmes comme le tien et bien d'autres ... comme par exemple, si tu compacte ta BD, le no auto reset et peu causer des doublons.

    Solution : Tu programme le tout toi-même ! c'est plus long et plus chiant, mais c'est toi qui contrôle tout.

    Pour remplacer un no Auto, j'utilise une Table TbParametres qui contient un champ Last_num_adherent. Note : cette table ne contiendra qu'une seule ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    sql = SELECT Last_num_adherent FROM TbParametres;
    rsParam.open sql,conn
    nouveau_adherent=Formatnumber(rs("Last_num_adherent"),0)+1
    Et lorsque quelqu'un adhere, il te suffit d'ajouter 1 au champ Last_num_adherent

    J'espère que ça t'aidera un peu

    Yan

  3. #3
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    Salut,

    Personnellement, j'évite le plus possible les 'numéros auto'. Il cause des problèmes comme le tien et bien d'autres
    Ouh là là!

    Il faut faire une différence entre numéro auto et identifiant métier (par exemple un n° de sécurité sociale, ou un n° de téléphone).

    A mon sens, il faut absolument laisser la base s'occuper de ça toute seule. La façon dont elle va se servir de ce n° pour lier les tables entre elles est la plus efficace.

    Le n° de sécu est un n° unique. Pour autant, c'est un n° qu'on obtient seulement à sa majorité. Quid des mineurs? => n° auto.
    Le n° de téléphone est unique. Pour autant si vous résiliez votre abonnement il sera donné à quelqu'un d'autre. Quid de votre dossier? => n° auto.

    Sans compter le temps qu'il faut à la base pour savoir quels sont les n° libres (réutilisables) au moment de l'insertion. D'ailleurs, au moment de l'insertion, que se passe-t-il si deux enregistrements se font au même moment?

    Dans ma précédente boite, on utilisait SAP. Nous avions tous notre numéro, sauf que celui des stagiaires, intérimaires, etc, avait un motif différent.

    Non, non, il faut garder le numéro auto!

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    381
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : Maroc

    Informations forums :
    Inscription : Novembre 2007
    Messages : 381
    Points : 180
    Points
    180
    Par défaut
    Merci Immobilis pour ta réponse, j'ai gardé le numéro auto bien sur, et au lieu d'afficher le numéro de nouveau adhérent avant l'insertion je l'affiche après comme ça j'évite avoir des problèmes.

  5. #5
    Expert éminent
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Points : 9 506
    Points
    9 506
    Par défaut
    ?
    "Winter is coming" (ma nouvelle page d'accueil)

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

Discussions similaires

  1. [BO 5.1.8]Problemes avec Numéro autos sur Mysql
    Par zalalus dans le forum Designer
    Réponses: 10
    Dernier message: 17/10/2007, 17h41
  2. probleme avec une auto-incremente
    Par tchimou dans le forum Bases de données
    Réponses: 1
    Dernier message: 30/05/2007, 14h28
  3. [JDK1.5]probleme avec l'auto-unboxing
    Par Grimaud dans le forum NetBeans
    Réponses: 4
    Dernier message: 11/04/2007, 10h10
  4. [Jdbc] insertion avec numero auto
    Par ice69 dans le forum JDBC
    Réponses: 2
    Dernier message: 31/10/2005, 19h19
  5. probleme de type numero auto
    Par unix27 dans le forum ASP
    Réponses: 4
    Dernier message: 25/11/2004, 11h53

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