|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 324 ![]() |
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? |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
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 |
|
00
|
|
|
#3 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 324 ![]() |
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 |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
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 |
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 324 ![]() |
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 |
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
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 |
|
00
|
|
|
#7 | |
|
Expert Confirmé
![]() ![]() ![]() Philippe MakowskiConsultant spécialité Firebird Inscription : mai 2002 Messages : 2 215 ![]() |
Citation:
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 |
|
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() ![]() Développeur d'applications Inscription : novembre 2005 Messages : 2 324 ![]() |
Merci pour ton aide.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com