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

MS SQL Server Discussion :

Zone de texte nchar(20) complétée avec des blanks


Sujet :

MS SQL Server

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Zone de texte nchar(20) complétée avec des blanks
    Bonjour,

    J'utilise SQL serveur comme base de données d'un site internet, où l'utilisateur doit entrer son mot de passe, comparé au mot de passe qu'il avait entré dans sa fiche lors de l'inscription.

    Le problème est que dans la zone nchar(20) "password", SQL server a complété avec des blanks (espaces) pour compléter la zone lors de l'enregistrement. Et quand on lit la valeur par select, il ne prend pas tous les blanks mais il en garde un à la fin du texte !

    Ainsi, on compare en ASP les mots de passe "TOTO " (issu de la base) avec "TOTO" (saisi par l'utilisateur), et ça ne correspond pas.

    Ma question : comment éviter que les zones soient pleines de vide lors de l'écriture, ou bien comment ne pas avoir cet espace lors de la lecture en ASP.

    Merci pour votre aide !!
    Nef

  2. #2
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    comment éviter que les zones soient pleines de vide lors de l'écriture
    Elle ne sont en fait pas pleine de vide (l'absence de valeur est notifiée en SQL par le fameux NULL ) mais d'espaces, parce que vous avez choisi un type de chaînes de caractère à longueur fixe.
    Pourquoi avoir choisi le type NCHAR ? Pensez-vous que les utilisateur vont entrer des caractères qui ne font pas partie de l'alphabet latin ?
    Si tel est le cas votre choix est le bon; sinon, vous stockez tout caractère sur deux octets au lieu d'un pour rien.

    Si donc vous êtes dans le cas d'une application à destination internationale, et que vous voulez vous passer des espaces, exécutez :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE dbo.TbUtilisateur
    ALTER COLUMN colMotDePasse NVARCHAR(20)
    Si en revanche vous êtes certain que les utilisateurs de votre application n'utiliseront que des caractères de l'alphabet latin pour constituer leur mot de passe, exécutez plutôt :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE dbo.TbUtilisateur
    ALTER COLUMN colMotDePasse VARCHAR(20)
    Voyez le petit billet que je viens d'écrire au sujet du choix des types de données (§ Stocker des chaînes de caractères numériques ou forcément latins dans une colonne de type Unicode (NCHAR, NVARCHAR))

    @++

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Ca fonctionne, effectivement il fallait mettre le type VARCHAR au lieu de CHAR merci pour le coup de main !

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

Discussions similaires

  1. Créer une zone de texte qui n'accepte que des nombres
    Par boutheinanabeul dans le forum VB.NET
    Réponses: 26
    Dernier message: 30/03/2015, 15h42
  2. Vérifier si des champs sont complétés avec des chiffres
    Par AlexandraBr dans le forum Général JavaScript
    Réponses: 28
    Dernier message: 30/09/2014, 01h14
  3. printf complété avec des 0
    Par Milowen dans le forum C
    Réponses: 2
    Dernier message: 14/11/2006, 11h35
  4. [debutant] Associer zone de texte d'un formulaire avec une requete
    Par hiko-seijuro dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 13/07/2006, 08h19
  5. Réponses: 3
    Dernier message: 21/06/2005, 11h37

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