[ dc43 @ 18.09.2005. 22:01 ] @
Napisao sam funkciju u Transact-SQL jeziku koja konvertuje string napisan na latinici u string napisan na ćirilici. Dajem dozvolu svima da koriste ovu funkciju u svojim programima. Jedino tražim da mi javite o tome, ali nije obavezno. Bilo bi mi drago da čujem gde je bila od koristi.

Od velike je važnosti da na SQL Serveru, ili na samoj bazi u kojoj se funkcija pravi i koristi, bude postavljen COLLATION koji je CASE SENSITIVE. Ako se to ne uradi onda funkcija vraća lower case ćiriličnu verziju ulaznog stringa.

Collation je ono što određuje kako se stringovi sortiraju i upoređuju. Za bazu možete modifikovati Collation na sledeći način.

ALTER DATABASE NazivBaze
COLLATE Croatian_CS_AS_KS_WS

"Croatian_CS_AS_KS_WS" je iskorišćen samo kao primer, najvažnije je da je CS (case sensitive).

Funkcija je osetljiva na veličinu slova (letter case). Kada su u pitanju slova "lj", "nj" i "dž", jedino oba mala slova se prevode u malo ćirilično slovo (lj -> lj, Lj -> Lj, lJ -> Lj, LJ -> Lj). Karakteri koji ne spadaju u latinicu se prenose neizmenjeni.

Pošto poruke na forumu automatski bivaju konvertovane u latinicu, nisam stavio code, jer ne bi imalo smisla. Prikačio sam fajl koji sadrži CREATE FUNCTION script. Fajl u kom se nalazi ova funkcija mora biti snimljen sa encodingom Unicode (UTF-8).

Nisam siguran koliko je ovo korisna funkcija, ali poznajem neke ljude koji bi rekli da je efikasnije nego kada bi se podaci prvo izvukli, izmenili i onda snimili nazad, koristeći neki programski jezik kao što je C#. Ja nisam još testirao, ali kada budem, objaviću rezultate.

JavaScript verzija funkcije je prvo nastala. http://www.elitesecurity.org/tema/135980

Potom C# verzija. http://www.elitesecurity.org/tema/136000

[Ovu poruku je menjao dc43 dana 18.09.2005. u 23:26 GMT+1]
[ ivan74 @ 19.09.2005. 08:51 ] @
Ja sam pre nekog vremena napravio suprotnu proceduru u sql-u i sad mi treba ova latinica u cirilicu i bas gledam kako sam to radio kad stize tvoj mejl ustedece mi par sati hvala.
Evo i mog koda znaci koverzija cirilica u latinicu, collation je kod mene nebitan.

Ups! Rado bih zakacio fajl ali to nikada nisam radio na ovom forumu, a izlgeda da ne znam kako
Da li moze mala pomoc?
[ dc43 @ 19.09.2005. 18:24 ] @
Drago mi je da neko ceni moj rad :)

Moram da priznam da ni ja nisam ranije uploadovao. Kad posaljes poruku trebalo bi ispod poruke da imas link za upload fajla.
[ stomic12 @ 16.06.2010. 17:55 ] @
Znam da je 5 godina stara tema, ali meni je ustedila gomilu vremena, pa ako jos netko naleti samo napomena. Ne treba konvertirati cijelu bazu samo je dovoljno liniju
SET @c = CASE @slovo

promijeniti u ovo:

SET @c = CASE @slovo COLLATE Croatian_CS_AS_KS_WS

Odnosno dodati ovaj COLLATE Croatian_CS_AS_KS_WS

Sve radi! Puno hvala!