Forum Delphi.cz

FreePascal (FPC) a Lazarus => Obecné => Téma založeno: Slavomir 10-05-2018, 10:46:51

Název: TDBGrid a abecedné radenie
Přispěvatel: Slavomir 10-05-2018, 10:46:51
Ahojte, prosím o radu (robím v Lazaruse aj v DelphiXE2).
Doteraz som používal v mojich programoch vstavanú ("embedded") SQLite databázu. Spokojnosť bola s rýchlosťou aj stabilitou. Na zobrazenie údajov z tabuliek som využíval TListView (cez TStringList, kde som si údaje formátoval podľa potreby). Možno to bolo ťažkopádne, ale hlavne fungovalo (aj s lokálnym abecedným radením údajov v TStringList - teda na Slovensku "aáÁäÄbBcCčČ ...").

Teraz skúšam kombináciu SQLite + TDBGrid na zobrazenie údajov z tabuľky (cez TDataset a TSQLQuery). Všetko funguje, až na jednu "drobnosť".
Údaje neviem zoradiť ani za nič v správnom abecednom poradí. používam aj "collate nocase", pridal som aj textový stĺpec navyše, kde všetko ukladám "lower case" pre správne radenie. Nepomáha ... Viem, že "collate nocase" je len pre ASCII znaky. Preto by ma zaujímalo, či nie je vhodnejšia nejaká iná databáza ako SQLite - ak máte s tým skúsenosti. Uvítam nenáročné riešenie (som len programátor samouk), ale aby to radilo rôzne jazyky správne podľa lokálneho nastavenia PC.
Ďakujem.
Název: Re:TDBGrid a abecedné radenie
Přispěvatel: miroB 10-05-2018, 19:03:18
Zatiaľ bez odpovede.. Tak pokus:
Ak by bolo možné FireDAC, potom miesto TSQLQuery by bolo TFDQuery.
Následne COLLATE UTF16NoCase , či COLLATE UTF8NoCase..
Rozšírené možnosti SQLite prostredníctvom FireDAC:
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_SQLite_with_FireDAC#Custom_Collations (http://docwiki.embarcadero.com/RADStudio/Tokyo/en/Using_SQLite_with_FireDAC#Custom_Collations)
Název: Re:TDBGrid a abecedné radenie
Přispěvatel: Slavomir 11-05-2018, 12:03:20
Vďaka za tipy.
Ak sa mi nepodarí rozchodiť collation podľa tohto návodu (https://forum.delphi.cz/index.php/topic,16074.0.html), pustím sa po navrhovaných riešeniach.
Název: Re:TDBGrid a abecedné radenie
Přispěvatel: Slavomir 24-05-2018, 08:35:37
Jednoduché riešenie správneho abecedného radenia záznamov v TDBGride sa skrývalo v komponente TSQLQuery.
Tam som do poľa IndexFieldNames vložil názov stĺpca, podľa ktorého sa záznamy abecedne radili (podľa lokálneho nastavenia). Funguje aj vo Windows, aj v Linuxe.
Takže zatiaľ zostávam pri starej dobrej SQLite databáze ...  ;D