|
-- Türkçe Büyükten Küçüge,Ingilizce Büyükten Küçüge
-- Çevirme islemi yapan fonksiyondur
CREATE FUNCTION [dbo].[BuyukToKucukToBuyuk]
(
@harfx char(1),
@tipx tinyint,
@dilx char(2)
)
RETURNS char(1)
AS
BEGIN
declare @sonucx char(1)
declare @asciikodx tinyint
declare @pasciikodx tinyint
declare @sayac1 tinyint
declare @sayac2 tinyint
declare @pkasciikodx tinyint
declare @pbasciikodx tinyint
declare @pkkarakterx char(1)
declare @pbkarakterx char(1)
declare @tblkarakterx table
(
asciikod int identity(1,1),
karakter char(1),
primary key(asciikod)
)
set @asciikodx=0
while (@asciikodx<255)
begin
set @asciikodx=@asciikodx+1
insert into @tblkarakterx(karakter)
values (char(@asciikodx))
end
declare @tblbuyukkucuken table
(
kascii tinyint,
bascii tinyint,
kkarakter char(1),
bkarakter char(1)
)
declare @tblbuyukkucuktr table
(
kascii tinyint,
bascii tinyint,
kkarakter char(1),
bkarakter char(1)
)
set @sayac1=64
set @sayac2=96
while (@sayac1<90)
begin
set @sayac1=@sayac1+1
set @sayac2=@sayac2+1
set @pkasciikodx=(select asciikod from @tblkarakterx where asciikod=@sayac2)
set @pbasciikodx=(select asciikod from @tblkarakterx where asciikod=@sayac1)
set @pkkarakterx=(select karakter from @tblkarakterx where asciikod=@sayac2)
set @pbkarakterx=(select karakter from @tblkarakterx where asciikod=@sayac1)
insert into @tblbuyukkucuken values
(@pkasciikodx,@pbasciikodx,@pkkarakterx,@pbkarakterx)
if (@sayac2!=105)
begin
insert into @tblbuyukkucuktr values
(@pkasciikodx,@pbasciikodx,@pkkarakterx,@pbkarakterx)
end
end
insert into @tblbuyukkucuktr values (231,199,'ç','Ç')
insert into @tblbuyukkucuktr values (240,208,'g','G')
insert into @tblbuyukkucuktr values (105,221,'i','I')
insert into @tblbuyukkucuktr values (246,214,'ö','Ö')
insert into @tblbuyukkucuktr values (254,222,'s','S')
insert into @tblbuyukkucuktr values (252,220,'ü','Ü')
insert into @tblbuyukkucuktr values (253,73, 'i','I')
--Harfin Ascii Kodu
set @pasciikodx=ascii(@harfx)
IF (@dilx='tr')-- Türkçe ise
BEGIN
if (@tipx=0)-- 0 ise büyüge
begin
set @sonucx=(select bkarakter from @tblbuyukkucuktr where kascii=@pasciikodx)
if (@sonucx is null) set @sonucx=@harfx
end
else if (@tipx=1)
begin
set @sonucx=(select kkarakter from @tblbuyukkucuktr where bascii=@pasciikodx)
if (@sonucx is null) set @sonucx=@harfx
end
END ELSE IF (@dilx='en')
BEGIN
if (@tipx=0)
begin
set @sonucx=(select bkarakter from @tblbuyukkucuken where kascii=@pasciikodx)
if (@sonucx is null) set @sonucx=@harfx
end
else if (@tipx=1)
begin
set @sonucx=(select kkarakter from @tblbuyukkucuken where bascii=@pasciikodx)
if (@sonucx is null) set @sonucx=@harfx
end
END
RETURN @sonucx
END
|