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

Requêtes et SQL. Discussion :

Ma chaîne SQL ne fait pas la différence entre un H et un h


Sujet :

Requêtes et SQL.

  1. #1
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut Ma chaîne SQL ne fait pas la différence entre un H et un h
    Bonjour le forum,

    J'ai une requête qui contient des données H et h.

    J'ai créé une chaîne SQL qui devrait être censé compter les H (majuscule) et les h (miniscule), le problème est qu'il ne fait pas la différence...

    Voici ma chaine SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM [rqtStatTPA25] Where [TPA25] = ucase('H') "
    Y'a t'il un moyen de différencier des caractères en miniscule et en majuscule ?

    Merci d'avance.

    bgs

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 20
    Points : 19
    Points
    19
    Par défaut
    salut

    Peut-être avec la fonction CHAR()...

    char(72) -> 'H' char(102) -> 'h'

    c'est juste une idée ...

  3. #3
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Fredeau,

    Merci pour ta réponse.

    Je crée un site web dynamique en ASP, mais j'utilise Access et SQL pour ce dernier, c'est pour cela que j'étais venu sur ce forum.

    Quand je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [rqtStatTPA25] Where [TPA25] = char(72)
    dans une nouvelle requête Access, j'obtiens ce message d'erreur :

    Fonction 'char' non définie dans l'expression.
    Qu'en penses-tu, vous ?

    Merci encore pour l'aide.

    bgs

  4. #4
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Je pense qu'il faut que tu utilises la fonction chr (même syntaxe que la fonction donnée par Fredeau

  5. #5
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par mcdotta
    Je pense qu'il faut que tu utilises la fonction chr (même syntaxe que la fonction donnée par Fredeau
    Salut mcdotta,

    Tu as raison, il faut utiliser chr (merci !).

    Le hic, c'est que c'est toujours pas reconnu.

    Il y'a 6 grand H et deux petits h et il mets 8 H et 8 h dans les statistiques.

    Tu peux voir le site ici http://164.15.112.38/RHESUS/statistiquesTPA25.asp

    Pensez-vous qu'il y'ait une autre solution ?

    Merci encore.

    bgs

  6. #6
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... Where Asc([TPA25]) = 72
    :

  7. #7
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Citation Envoyé par Arkham46
    slt,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... Where Asc([TPA25]) = 72
    :
    Salut,

    En faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [rqtStatTPA25] Where Asc([TPA25]) = 72
    dans une nouvelle requête Access (SQL), j'obtiens ce message d'erreur :

    Type de données incompatible dans l'expression du critère
    Qu'en penses-tu ?

    Merci
    Bgs

  8. #8
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    La fonction Asc attend un argument de type Integer.

    Essaie avec ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [rqtStatTPA25] Where Asc(CInt([TPA25])) = 72
    et si ca passe ajoute ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [rqtStatTPA25] Where Asc(CInt(Nz([TPA25],0))) = 72

  9. #9
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Resalut mcdotta,

    Merci pour ton aide.

    Avec cette chaîne (dans une requête Access) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [rqtStatTPA25] Where Asc(CInt([TPA25])) = 72
    J'obtiens ce message d'erreur :

    Utilisation incorrecte de Null
    avec l'autre chaîne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM [rqtStatTPA25] Where Asc(CInt(Nz([TPA25],0))) = 72
    Types de données incompatible dans l'expression du critère
    Pour faire la différence entre le h et le H je me demande si je ne devrais pas le faire suivre d'un caractère invisible, j'ai déjà essayé avec l'espace, ça ne fonctionne pas.

    Si vous avez des idées...

    Merci encore.

    bgs

  10. #10
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Essayons autre chose.

    Essaie ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [rqtStatTPA25], Nz([TPA25]) as expField
    Est-ce que ca passe ; qu'est-ce que tu as dans ta colonne ?

    Ensuite essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [rqtStatTPA25], Cint(Nz([TPA25])) as expField

    Ensuite essaie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM [rqtStatTPA25], Asc(Cint(Nz([TPA25]))) as expField

  11. #11
    Expert éminent sénior
    Avatar de Arkham46
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    5 865
    Détails du profil
    Informations personnelles :
    Localisation : France, Loiret (Centre)

    Informations forums :
    Inscription : Septembre 2003
    Messages : 5 865
    Points : 14 526
    Points
    14 526
    Par défaut
    Citation Envoyé par mcdotta
    La fonction Asc attend un argument de type Integer.
    Heu non pas vraiment

    Asc renvoie le code Ascii d'un caractère

    Peut-être en forcant avec une conversion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... Where Asc(Cstr([TPA25])) = 72
    :

    J'ai pas testé je sais pas si SQL reconnaît ces fonctions...

    Edit : Oops c'est le null apparement qui le dérange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... Where Asc(Nz([TPA25])) = 72
    :

  12. #12
    Invité
    Invité(e)
    Par défaut
    Salut,

    Pourquoi ne pas mettre cette valeur transformée dans une variable et reprendre cette variable dans ta chaine sql, comme sql ne prend pas en compte toutes les fonctions, cela permettrait de contourner le problème

    Starec

  13. #13
    Membre averti Avatar de mcdotta
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 292
    Points : 324
    Points
    324
    Par défaut
    Ooops, Arkham46, j'en étais resté avec le chr du début (en plus c'est un long qu'il veut et pas un integer....)

    N'empêche que le Null posait bien un problème....

  14. #14
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut mcdotta, starec et Arkham46,

    Je vous remercie tous les trois pour votre dévouement

    J'ai finalement suivi mon instinct et j'ai mis un H. (un point après le grand H).

    Comme cela, il trouve les h et les H. (mais dans le graphique, on ne voit pas le ., vous pouvez visitez à nouveau le site pour vous en rendred compte).

    Je profite de cette réponse pour remercier sincèrement tout le monde, pour leur participation, leur dévouement... aux problèmes informatiques des autres.

    C'est grâce à des gens comme vous qu'on peut avancer et améliorer ses connaissances.

    Bonne journée et merci encore.

    bgs

  15. #15
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    moi j'utiliserais plutôt la fonction StrComp() qui comporte un argument de sensibilité à la casse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strSQL = "SELECT * FROM [rqtStatTPA25] Where StrComp([TPA25], 'H', 0) = 0 ;"

  16. #16
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par beegees
    Salut mcdotta, starec et Arkham46,

    Je vous remercie tous les trois pour votre dévouement

    J'ai finalement suivi mon instinct et j'ai mis un H. (un point après le grand H).

    Comme cela, il trouve les h et les H. (mais dans le graphique, on ne voit pas le ., vous pouvez visitez à nouveau le site pour vous en rendred compte).

    Je profite de cette réponse pour remercier sincèrement tout le monde, pour leur participation, leur dévouement... aux problèmes informatiques des autres.

    C'est grâce à des gens comme vous qu'on peut avancer et améliorer ses connaissances.

    Bonne journée et merci encore.

    bgs
    ne baissons pas les bras solution plus haut

  17. #17
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Salut Cafeine,

    J'adore ta motivation (et ton logo de Goldorak, je suis fan des mangas des années 80).

    Je veux pas te faire de peine mais ça fonctionne malheureusment pas.

    J'obtiens le même résultat qu'au début, si je met un h, j'ai un h et un H

    Mais c'est pas très grave vue que le point est à peine visible dans le formulaire et invisble dans les statistiques.

    Qu'en penses-tu ?

    Merci pour tout.

    bgs

  18. #18
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Citation Envoyé par beegees
    Salut Cafeine,

    J'adore ta motivation (et ton logo de Goldorak, je suis fan des mangas des années 80).

    Je veux pas te faire de peine mais ça fonctionne malheureusment pas.

    J'obtiens le même résultat qu'au début, si je met un h, j'ai un h et un H

    Mais c'est pas très grave vue que le point est à peine visible dans le formulaire et invisble dans les statistiques.

    Qu'en penses-tu ?

    Merci pour tout.

    bgs
    Si si, je suis très peiné

    d'autant que j'ai testé le SQL avant ... et que ça marche chez moi (Access 2000)

  19. #19
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    J'ai Access 2003.

    Je vais ré-essayer et je te dis quoi.

    A tout de suite.

    bgs

  20. #20
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Si si, je suis très peiné Wink

    d'autant que j'ai testé le SQL avant ... et que ça marche chez moi (Access 2000)
    J'ai ré-essayé, et ça fonctionne

    J'ai testé en direct sur la base de donnée et non via ma programmation vbscript.

    Maintenant je vais analyser ton code.

    Merci pour tout !

    bgs

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

Discussions similaires

  1. je vois pas la différence entre ces 2 codes
    Par membreComplexe12 dans le forum C++
    Réponses: 2
    Dernier message: 09/08/2011, 19h41
  2. Réponses: 9
    Dernier message: 17/01/2011, 21h38
  3. Pas de différence entre onPress et onRelease
    Par supergrey dans le forum ActionScript 1 & ActionScript 2
    Réponses: 2
    Dernier message: 06/07/2007, 12h21
  4. Réponses: 1
    Dernier message: 20/06/2007, 18h03
  5. [SQL Server 8] le join ne se fait pas
    Par Baquardie dans le forum Langage SQL
    Réponses: 10
    Dernier message: 29/07/2004, 15h57

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