Autor Téma: SQLite sort s diakritikou  (Přečteno 2262 krát)

Viktor

  • Host
SQLite sort s diakritikou
« kdy: 15-03-2014, 20:21:20 »
Rad by som sa opytal, ako nastavit SQLite aby zotriedil data s diakritikou v spravnom poradi

Aktualne mi dotaz vrati :

SELECT ID, Nazov FROM Tabulka ORDER BY Nazov

   2    Dokončené
   0    Nezačaté
   4    Odložené
   1    Prebieha
   3    Čaká sa na niekoho ďalšieho

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2720
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:SQLite sort s diakritikou
« Odpověď #1 kdy: 16-03-2014, 09:47:10 »
SQLite nepoznám. Ale každá DB má možnosť nastaviť kódovú stránku. Tam bude zakopaný pes.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 566
  • Karma: 23
Re:SQLite sort s diakritikou
« Odpověď #2 kdy: 16-03-2014, 10:46:13 »
Tak s collation na tom nejsou moc dobře a na výběr jsou asi tak tři možnosti, viz http://www.sqlite.org/datatype3.html dole

Podle http://www.devbook.cz/diskuzni-forum-java/sqlite---problem-s-diakritikou-51ac887728345 to bude asi nejlepší řadit až v aplikaci. Jestli tam máš jenom těch pár položek, tak to výkonnostní problém nebude.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1734
  • Karma: 72
    • Verze Delphi: D2007, XE3, DX10
Re:SQLite sort s diakritikou
« Odpověď #3 kdy: 16-03-2014, 10:59:39 »
SQLite nepoznám. Ale každá DB má možnosť nastaviť kódovú stránku. Tam bude zakopaný pes.
Kazda ne. SQLite je pomerne unikatni strojek, ktery je postaven na  myslence ukladat sloupce jako null terminated strings, do kterych si muzes nacpat, co je libo a pak si za to sam zodpovidat - pouziva dynamicke datove typy (z duvodu optimalizace do toho casem zanesli trochu chaos, ale ta puvodni myslenka zustava).

Puvodne pouzivala ANSI kodovani, dnes se asi nejcasteji pouziva UTF8 a strojek podporuje pouze 3 zakladni razeni: BINARY,  NOCASE a RTRIM. Pokud chces neco jineho, dela se to tak, ze si pod nejakym jmenem nadefinujes vlastni razeni tj. v podstate zaregistrujes porovnavaci funkci (v cdecl). Takovych funkci = razeni muzes mit kolik chces. A jakmile mas vlastni kolacovani, tak ho pouzijes zpusobem, jako u ostatnich DB: pri vytvareni tabulky, v selectu, v order by klauzuli

Takze rozhodujici je, jaky pouzivas wrapper a jak ti v tom pomuze. Ale tady ti uz nepomuzu ja, protoze v dobe, kdy jsem s SQLite neco delal, tak kolacovani nemela a my ho v backoffice aplikacich nikdy na nic nepotrebovali.
« Poslední změna: 16-03-2014, 11:14:48 od pf1957 »

Offline TLama

  • Guru
  • *****
  • Příspěvků: 597
  • Karma: 30
    • Verze Delphi: 7, 2009, XE3
Re:SQLite sort s diakritikou
« Odpověď #4 kdy: 16-03-2014, 11:26:00 »
Takze rozhodujici je, jaky pouzivas wrapper a jak ti v tom pomuze.

Např. Any(Fire)DAC má k vytvoření vlastních collation komponentu TADSQLiteCollation.

Viktor

  • Host
Re:SQLite sort s diakritikou
« Odpověď #5 kdy: 17-03-2014, 15:04:03 »
Dakujem za tip na FireDAC. Funguje to uplne presne ako som potreboval.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: