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]