Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Langages serveur > ASP
ASP Forum sur la programmation ASP. Avant de poster : Cours ASP, FAQ ASP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/03/2008, 18h01   #1
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
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 :
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.
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2008, 19h30   #2
Invité régulier
 
Inscription : janvier 2008
Messages : 19
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 19
Points : 7
Points : 7
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 :
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
y_marky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 21h18   #3
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 861
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 861
Points : 5 981
Points : 5 981
Salut,

Citation:
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+
Immobilis est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/03/2008, 23h55   #4
Membre habitué
 
Inscription : novembre 2007
Messages : 381
Détails du profil
Informations personnelles :
Âge : 29
Localisation : Maroc

Informations forums :
Inscription : novembre 2007
Messages : 381
Points : 148
Points : 148
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.
debutantasp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/03/2008, 08h20   #5
Expert Confirmé Sénior

 
Avatar de Immobilis
 
Inscription : mars 2004
Messages : 5 861
Détails du profil
Informations forums :
Inscription : mars 2004
Messages : 5 861
Points : 5 981
Points : 5 981
?
Immobilis est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h48.


 
 
 
 
Partenaires

Hébergement Web