Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno SQLite - Vlastné triedenie

Na stránke create_collation.html je popis ako nadefinovať vlastné triedenie do SQLite. Horšie je, že nerozumiem ako na to. Predpokladám, že priamo v databáze to neviem nastaviť a musím to spraviť programovo. Potrebujem to urobiť v Lazarovi. Akým spôsobom si zaregistrujem tieto vlastné funkcie? Dá sa to vôbec v Lazarovi?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Tohle je podle mne interface k DLL. Musis napsat DLL a v ni exportovat tyto funkce. To muzes i v Laz…
Jan Fiala 24.09.2013 14:27
Jan Fiala
Aha, takže toto už pre mňa také jednoduché nebude. To aby som sa začal učiť výrobu DLL.
msx. 24.09.2013 15:38
msx.
Urcite nejsi prvni, kdo to delal. Pri trose snahy bys mel na internetu najit zdrojaky
Jan Fiala 24.09.2013 16:49
Jan Fiala
No nič, asi to skúsim sám. Vedel by si ma prosím nasmerovať ako nazvať DLL súbor, aby s ním SQLite p…
msx. 25.09.2013 15:17
msx.
cintro.html All of the built-in SQL functions of SQLite are created using exactly these same interf… nový
Jan Fiala 25.09.2013 15:58
Jan Fiala
Nakoniec som predsa len skončil pri ICU. Mám stiahnuté aktuálne SQLite a ICU, ale neviem to dať doko… nový
msx. 25.09.2013 17:42
msx.
Robil som to takto: Spustil som Code::Blocks, tam som otvoril zdroják SQLite a skúšobne som dal hneď… nový
msx. 25.09.2013 22:09
msx.
Keďže mi to nedalo pokoja a ďalej som sa v tom vŕtal, podarilo sa mi problém vyriešiť. Tu je riešeni… poslední
msx. 25.09.2013 23:45
msx.

Nakoniec som predsa len skončil pri ICU. Mám stiahnuté aktuálne SQLite a ICU, ale neviem to dať dokopy. Prepokladám, že kompilovať nemusím nič, keďže som stiahol priamo binárky.

Doplnené: Takže kompilovať pravdepodobne musím, ale nedarí sa mi. Skúsil som to cez Code::Blocks, ale neúspešne.

Robil som to takto:
Spustil som Code::Blocks, tam som otvoril zdroják SQLite a skúšobne som dal hneď kompiláciu. Vyhodilo mi to chybu v nejakej includovanej knižnici z MinGW. Táto koémpilácia cudzích projektov bola pre mňa vždy španielska dedina. Na internete som nejaké SQLite s ICU aj našiel, ale v Lazarovi mi neberie nastavenie collation cez SQL príkaz SELECT. Možno niečo robím špatne, ale neviem čo. Ak by mi s tým niekto vedel poradiť, bol by som mu veľmi vďačný. Nechápem prečo SQLite rovno nevydávajú v dvoch verziách. S ICU a bez ICU.

Doplnené:
SQLite s ICU mám odtiaľto:
forum#!topic/web2py/Q_5i1tozCDM

Ale neviem to rozchodiť.

Keďže mi to nedalo pokoja a ďalej som sa v tom vŕtal, podarilo sa mi problém vyriešiť. Tu je riešenie:

Na stránke Google Groups sa dá preklikať na download SQLite kompiláciu s ICU:
pagesqliteicu.html

Lenže mne to nefungovalo. Dôvod bol ten (ako som neskôr zistil pomocou nástroja depends, že úplne posledný download (najvyššie s najnovšími verziami) zrejme kvôli chybe autora neobsahuje SQLite naviazané na ICU, ale len čisté SQLite a ICU je k tomu len pribalené. Treba stiahnuť staršiu kompiláciu. Ja som stiahol tú najstaršiu. Potom je treba stiahnuť kompiláciu ICU pre Windows z ICU stránky a doložiť súbor icudt38.dll. Potom po ovorení databázy treba zadať SQL príkaz:
SELECT icu_load_collation('sk_SK', 'slovak');

A samotné triedenie musí na konci ORDER klauzuly obsahovať:
COLLATE slovak

Toto síce nie je nutné, ale len vtedy, ak je tabuľka už vytvorená so správnym COLLATE, lenže tam by zrejme hrozila nekompatibilita s ostatnými klientmi.

Zpět do poradny Odpovědět na původní otázku Nahoru