[ Milan Milosevic @ 06.10.2015. 12:24 ] @
UpperCase funkcija ne konvertuje cirilicu. Da li postoji neka funkcija koja to radi. |
[ Milan Milosevic @ 06.10.2015. 12:24 ] @
[ savkic @ 06.10.2015. 12:31 ] @
Koji Delphi i da li ti je WideString ili string. Ima i AnsiUpperCase...
[ Milan Milosevic @ 06.10.2015. 12:40 ] @
Da li AnsiUpperCase može za ćirilicu?
Delphi 10 u pitanju je sqlite baza UTF-8 encoding Query SELECT * FROM Jezici WHERE UPPER(naziv) LIKE UPPER("%en%") kod SQLite menager radi upit, ali kroz delphi ne Probao sam i nesto ovako, ali ne konvertuje Caption:=System.UnicodeString.UpperCase('ćMilan') vraca isto [Ovu poruku je menjao Milan Milosevic dana 07.10.2015. u 19:07 GMT+1] [ savkic @ 06.10.2015. 13:31 ] @
Definitivno mora AnsiUpperCase (koristi OS za konverziju) dok SysUtils.UpperCase radi samo za ASCII karaktere.
[ Milan Milosevic @ 06.10.2015. 15:35 ] @
AnsiUpperCase radi poso
Hvala [ Milan Milosevic @ 06.10.2015. 17:13 ] @
Izgleda da u delphiju Query funkcija UPPER ne radi za cirilicu.
Imate li neka iskustva sa ovim [ savkic @ 06.10.2015. 17:42 ] @
UPPER u ovom tvom primeru mi deluje da je funkcija od baze, ne znam kako ona funkcioniše to trebaš videti u dokumentaciji.
[ Milan Milosevic @ 06.10.2015. 18:06 ] @
UPPER funkcija SQL-a i konvertuje selektovane vrednosti polja u velika slova.
Pogledao sam i ona radi ASCII kodiranje. Probao sam za zapise latinicnim pismom i radi kako treba, medutim sa cirilicom nece. Izgleda da je ovo opsti nedostatak kod sqlite-a. [Ovu poruku je menjao Milan Milosevic dana 07.10.2015. u 19:08 GMT+1] [ savkic @ 06.10.2015. 23:08 ] @
SQLite podržava overloading funkcija tako da ti možeš UPPER redefinisati i implementirati u tvom programu. Nažalost ja to nisam radio pa i ne mogu ti biti nešto više od pomoći.
[ Milan Milosevic @ 07.10.2015. 16:02 ] @
Problem resen hvala savkicu.
Ukoliko nekom bude zatrebalo iskoristiti komponente FDPhysSQLiteDriverLink i FDSQLiteFunction Pomocu komponente FDSQLiteFunction mozes definisati svoje funkcije koje posle koristis u okviru SQL upita. Recimo ja sam za pretvaranja sva cirilicna slova u velika napravio funkciju GORE Code: procedure TUnosPodatakaForm.FDSQLiteFunction1Calculate( AFunc: TSQLiteFunctionInstance; AInputs: TSQLiteInputs; AOutput: TSQLiteOutput; var AUserData: TObject); begin AOutput.AsString:=AnsiUpperCase(AInputs[0].AsString) end; i onda je pozoves iz Query ja Code: Velika:=AnsiUpperCase(EditNazivPredmeta.Text); SQLString:='SELECT * FROM Predmeti WHERE GORE(naziv) LIKE "%'+Velika+'%"'; Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|