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

Firebird Discussion :

[FB] Un problème de sensibilité à la casse et aux accents.


Sujet :

Firebird

  1. #1
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 739
    Points
    7 739
    Par défaut [FB] Un problème de sensibilité à la casse et aux accents.
    Hello,
    J'envisage de migrer une application SQL server vers firebird afin de pouvoir profiter du choix entre le mode monoposte ou serveur (que je trouve super intéressant).
    J'ai fait plusieurs recherches concernant mon principal problème qui vient des collations disponibles, pas de FR en case et accent insensitive pour les recherches.
    Les réponses que j'ai obtenues jusqu'à maintenant ne sont pas vraiment satisfaisantes, les solutions proposées (UPPER et autres) ont la superbe particularité de faire ignorer les indexs, et étant donné que je ne compte pas travailler sur des tables de 50 enregistrements c'est un véritable problème.

    J'ai vu que les Indexs sur expression (style postgresql) qui ont été introduits depuis la version 2.0 seraient peut-être un bon pas en avant. Le souci est que j'utilise un outil de mapping objet relationnel qui ne sera pas capable d'ajouter tout seul un UPPER dans les requêtes qu'il générera.

    En fait j'ai remarqué que des collations CI_AI existaient pour l'espagnol et le portugais, c'est vraiment surprenant que personne n'ait jamais pensé à en créer pour d'autres langues. Ce serait vraiment ce qu'il me faudrait.

    Une piste ou un conseil?

  2. #2
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 342
    Points : 3 701
    Points
    3 701
    Par défaut
    personne n'a du le demander

    ceci dit tu doit pouvoir utiliser ISO8859_1 avec ES_ES_CI_AI et obtenir ce que tu souhaites

    par exemple, un SELECT monchamp from matable where monchamp COLLATE ES_ES_CI_AI LIKE '%e%'
    va bien me ramener tout ce qui contient e,é,è,E
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 739
    Points
    7 739
    Par défaut
    Merci de ta réponse,

    Mais j'avoue que je suis un peu timide à l'idée d'employer la collation espagnole car je sais pas quelles sont les différences avec FR_fr... Peut être je m'inquiète pour rien?

    La dernière version de firebird (2.1 beta) permet de créer sa propre collation, cela résoud au moins les problème des majuscules/minuscules, restent les accents.


    CREATE COLLATION FR_FR_CI
    FOR ISO8859_1
    FROM FR_fr
    CASE INSENSITIVE


    C'est le seul truc que je trouve vraiment pénible avec ce SGBD

  4. #4
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 342
    Points : 3 701
    Points
    3 701
    Par défaut
    On a toujours pu créer ces propres collations et même jeu de caractères, c'est juste facilité avec la 2.1
    avec la 2.0 c'est possible aussi un peu moins facilement (cf README.intl.txt)
    avec la 1.5 c'est aussi possible, mais encore moins facilement

    avec la 2.1 :

    CREATE COLLATION FR_FR_CI_AI
    FOR ISO8859_1
    FROM FR_FR
    CASE INSENSITIVE
    ACCENT INSENSITIVE

    fonctionne très bien
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  5. #5
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 739
    Points
    7 739
    Par défaut
    Ah tiens je n'avais pas vu qu'on pouvait préciser Accent insensitive. Cool.
    Bon pour le moment j'ai modifié tout mon script pour que les varchar utilisent la collation ES_ES_CI_AI qui semble faire l'affaire, j'ai testé et ca m'a eu l'air de bien fonctionner.

    En ce qui concerne la possibilité de créer des collations, oui ça existe en effet mais ça demandait d'écrire du C. Si t'arrives à me sortir comment s'y prendre pour avoir un FR_FR_CI_AI pour firebird 2.01 je suis preneur.

    J'ai un énorme mal à trouver de la documentation *à jour* sur firebird en général, ça me prend un peu la tête mais d'un autre coté je le trouve tellement bien ce sgbd

  6. #6
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 342
    Points : 3 701
    Points
    3 701
    Par défaut
    tu pourras le faire dans la 2.0.2 avec :
    execute procedure sp_register_collation ('ISO8859_1', 'FR_FR_CI_AI','FR_FR',7);

    et par défaut FR_FR_CI_AI sera installée dans la 2.1 à partir de la beta2
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  7. #7
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 2 342
    Points : 3 701
    Points
    3 701
    Par défaut
    Citation Envoyé par _skip
    J'ai un énorme mal à trouver de la documentation *à jour* sur firebird en général, ça me prend un peu la tête mais d'un autre coté je le trouve tellement bien ce sgbd
    Aujourd'hui la doc la plus à jour c'est le livre d'Helen avec l'additif disponible
    et les notes de version en plus pour compléter si necessaire
    http://www.ibphoenix.com/main.nfs?a=..._firebird_book
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  8. #8
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : novembre 2005
    Messages : 2 898
    Points : 7 739
    Points
    7 739
    Par défaut
    Merci pour ton aide.

Discussions similaires

  1. LIKE / insensible à la casse et aux accents
    Par Samish dans le forum Requêtes
    Réponses: 12
    Dernier message: 03/04/2009, 19h53
  2. Sensibilité à la casse
    Par Diss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 08/09/2006, 17h41
  3. Sensibilité à la casse
    Par pier* dans le forum Oracle
    Réponses: 4
    Dernier message: 04/04/2006, 11h15
  4. Tri par ordre alpha, sensibilité à la casse
    Par linou dans le forum Oracle
    Réponses: 2
    Dernier message: 30/09/2005, 15h45
  5. MSSQL et sensibilité à la casse
    Par mortalzoom dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 11/07/2005, 15h31

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