Bonjour,
SQLite n'est pas fait pour le français... enfin ses collations. En Python, il y a une manière élégante de contourner ce problème. On peut aussi sans "toucher à rien", cloner les index de tris dans des champs supplémentaires sans accents.
Toujours est-il que le tri par défaut (le classique Épées) serait
La majuscule accentuée étant en fin de liste après les lettres "anglaises" non accentuées.Epais
Epees
Epreuve
Epées ! Le é après les autres lettres donc ici, après le r
SQLite
Épais ! Le É après le S
Épées
Donc, j'ai lu la documentation, vérifié sur l'exemple. Il y a un moyen simple en effet.
Sauf que je ne pose rien sur ma Form, j'utilse la création dynamique des composants FireDac : Create(nil). J'ai bien regardé les codes de unit1.pas et unit1.dfm de C:\Users\Public\Documents\Embarcadero\Studio\15.0\Samples\Object Pascal\Database\FireDAC\Samples\DBMS Specific\SQLite\UserCollation\SQLite_UserColl.dpr, je n'arrive pas à obtenir le résultat escompté
J'ai bien utilsé comme précisé sur la doc :
Je suppose que le fait que l'exemple soit en VCL alors que j'utilise FMX n'a pas d'incidence. Je suis même allé faire un tour du côté de la Chine, sans plus de succès. Si quelqu'un sait comment régler ce problème, je suis intéressé.SELECT * FROM "Employees" ORDER BY LastName COLLATE UTF16NoCase
CREATE TABLE IF NOT EXISTS test_col (f1 VARCHAR(10) COLLATE UTF16NoCase)
Petite précision : j'utilise des NCHAR et NVARCHAR (et non des CHAR et VARCHAR)
Merci. Zac.
Partager