-
Problème de tri
Bonsoir,
J'utilise Sqlite comme base de données sous C++ Builder XE7.
Je rencontre un pb de tri au niveau des requêtes SQL.
J'ai une liste de mots dans une table que je veux trier par ordre alphabétique.
J'utilise une requête qui se termine par "order by LIBELLE Asc (ou desc)".
A l'affichage dans une TdBGrid, les mots sont triés, mais il place les mots commençant par une voyelle accentué à la fin de la liste , après les z pour un tri alphabétique croissant.
Y-a-t-il une solution pour résoudre ce problème ?
Merci pour toute aide.
-
Bonjour,
Pour avoir un tri qui corresponde à tes besoins, il faut utiliser des collations (Séquences de tri...). Malheureusement SQLITE est assez pauvre dans ce domaine
Par contre tu peux définir ta propre collation en utilisant ta propre fonction de comparaison https://www.sqlite.org/c3ref/create_collation.html
Cordialement
-
Merci pour votre retour.
La solution de dédoubler l'index serait possible, en ajoutant dans la table une version des mots non accentué.
A ce sujet existe-t-il un fonction sous Borland permettant de transformer directement un mot accentué en mot non accentué; je peux écrire un fonction qui vérifie lettre par lettre mais je ne suis pas sûr que ce soit très optimal.
Merci