Sayfalar

17 Ocak 2017 Salı

Netsis Stok kodu açıldığında mail


Netsis Stok kodu açıldığında mail

Stok kartı kayıtları formunda ,stokmas_inq - beforepost event aşağıdaki script kullanılabilir.

SET QRY =NETSISCORE.NetLibDB.GetNewQuery
STR= "SELECT COUNT(*) FROM TBLSTSABIT WHERE STOK_KODU='" & STOK_KODUDB.TEXT & "'"
QRY.RECSQL(STR)
If QRY.FIELDS(0).ASINTEGER=0 Then
Dim mail,cc,subject,icerik
mail="sdikmenli@abana.com.tr"
cc="smetin@abana.com.tr"
subject= "Yeni Acilan Stok"
icerik ="NETSISISLEM" & CHR(10) & CHR(10) & "<p>"
icerik = icerik + ""
icerik = icerik + "<B>Stok Kodu:</B>" & STOK_KODUDB.TEXT & "<br/>"
icerik = icerik + "<B>Stok Adi :</B>" & STOK_ADI.TEXT
call netsiscore.NetLibEMail.EPostaGonder(mail,cc,subject,"",icerik)
End If

Netsis Rapor kolon sıralaması değiştirmek


Netsis Rapor kolon sıralaması değiştirmek

Trapor form\Rapor kapanis event ,

‘ilk olarak araya 2 kolon ekleniyor
‘4 sabit degeri, shilt columns anlamina gelmektedir.
‘1 : baslangic satir numarasi
‘6: baslangic kolon numarasi
‘ diger 2 parametre bitis degerlerini gostermektedir.

RAPORBOOK.InsertRange 1, 6, 16384, 7, 4

‘ilk 2 parametre : baslangic & bitis satir, sutun degegeri
‘sonra 2 parametre : bitis…
‘0: satir degisiklik degeri
‘-4: secili alani 4 geriye getir…

RAPORBOOK.MoveRange 1, 10, 16384, 11, 0, -4

Netsis Modül Geçiş


Netsis Modül Geçiş

Örneğin cari kart tanımlarken cari irtibat bilgilerine geçmek istersek ,
Set WshShell = CreateObject("WScript.Shell") 'Alt + K WshShell.SendKeys ("%K") 'Cari irtibat bilgileri
WshShell.SendKeys ("C") 'Enter WshShell.SendKeys ("{ENTER}")

Netsis Şirketler arası Çek aktarımı

Netsis Şirketler arası Çek aktarımı

set sorgu9=netsiscore.NetLibDB.GetNewQuery

cumle9 = "SELECT DB_NAME() AS SIRKET"

sorgu9.RecSQL(cumle9)

VTADI = sorgu9.fieldbyname("SIRKET").AsString

IF NETSISCORE.NetLibSession.AktifProgramNo=3 AND PROJE_KODU.TEXT="K" THEN

Set Kernel = CreateObject("NetOpenX50.Kernel")

Set Sirket = Kernel.yeniSirket(vtMSSQL, "DENEME13", "TEMELSET", "", "NETSIS", "NET1", NetsisCore.NetLibSession.LogicalSegmentValue)

Set HSirket = Kernel.yeniSirket(vtMSSQL, "GUNTAS13", "TEMELSET", "", "NETSIS", "NET1", NetsisCore.NetLibSession.LogicalSegmentValue)

Set CekSenetAna = Kernel.yeniCekSenAna(Sirket, csMCEK)

Set HCekSenetAna = Kernel.yeniCekSenAna(HSirket, csMCEK)

Set CekSenetOkunan = CekSenetAna.OkunanCS

Set HCekSenet = HCekSenetAna.EvrakYeni

If CekSenetAna.kayitOku(4, " sc_alb_no='"&sc_alb_no.text&"' " ) Then

MsgBox "kayit açildi"

CekSenetAna.kayitOku (0)

HCekSenet.SC_NO=CekSenetOkunan.SC_NO

HCekSenet.GIRIS_BORDRO=CekSenetOkunan.GIRIS_BORDRO

HCekSenet.SC_GIRTRH=CekSenetOkunan.SC_GIRTRH

HCekSenet.VADETRH=CekSenetOkunan.VADETRH

HCekSenet.SC_CIKTRH=CekSenetOkunan.SC_CIKTRH

HCekSenet.SC_ODETRH=CekSenetOkunan.SC_ODETRH

HCekSenet.SC_VERENK=CekSenetOkunan.SC_VERENK

HCekSenet.SC_ABORCLU=CekSenetOkunan.SC_ABORCLU

HCekSenet.AS_C=CekSenetOkunan.AS_C

HCekSenet.SC_VERILENK=CekSenetOkunan.SC_VERILENK

HCekSenet.SC_VERYCM=CekSenetOkunan.SC_VERYCM

HCekSenet.SC_BANKNO=CekSenetOkunan.SC_BANKNO

HCekSenet.SC_SONDUR=CekSenetOkunan.SC_SONDUR

HCekSenet.SC_YERI=CekSenetOkunan.SC_YERI

HCekSenet.RAPOR_KODU=CekSenetOkunan.RAPOR_KODU

HCekSenet.SC_VERB_NO=CekSenetOkunan.SC_VERB_NO

HCekSenet.YERI=CekSenetOkunan.YERI

HCekSenet.C_NUMARA=CekSenetOkunan.C_NUMARA

HCekSenet.GIRILDIGIYER=CekSenetOkunan.GIRILDIGIYER

HCekSenet.CEKSERI=CekSenetOkunan.CEKSERI

HCekSenet.Tutar=CekSenetOkunan.Tutar

HCekSenet.Proje_Kodu=CekSenetOkunan.Proje_Kodu

Hceksenet.Dovtip=CekSenetOkunan.Dovtip

Hceksenet.Dovtut=CekSenetOkunan.Dovtut

Hceksenet.CEK_SUBE=CekSenetOkunan.CEK_SUBE

Hceksenet.CEK_IL=CekSenetOkunan.CEK_IL

Hceksenet.CEK_ILCE=CekSenetOkunan.CEK_ILCE
Set sorgu2 = Netsiscore.Netlibdb.GetNewQuery

cumle2 = "update GUNTAS13..TBLMCEKNO SET SUBE_KODU=0, SERI=LEFT('"&CekSenetOkunan.SC_NO&"',1),SIRA_NO='"&CekSenetOkunan.SC_NO&"',ALB_NO='"&SC_ALB_NO.TEXT&"' "

sorgu2.recsql (cumle2)

HCekSenetAna.EvraklariKaydet (ektCekSenAlma)

Set sorgu = Netsiscore.Netlibdb.GetNewQuery

cumle = "select count(*) from TBLMCEK WHERE sc_alb_no='"&sc_alb_no.text&"'"

sorgu.recsql (cumle)

SAY = sorgu.Fields(0).AsInteger

for i=2 to SAY

CekSenetAna.KayitOku(1)

HCekSenet.SC_NO=CekSenetOkunan.SC_NO

HCekSenet.GIRIS_BORDRO=CekSenetOkunan.GIRIS_BORDRO

HCekSenet.SC_GIRTRH=CekSenetOkunan.SC_GIRTRH

HCekSenet.VADETRH=CekSenetOkunan.VADETRH

HCekSenet.SC_CIKTRH=CekSenetOkunan.SC_CIKTRH

HCekSenet.SC_ODETRH=CekSenetOkunan.SC_ODETRH

HCekSenet.SC_VERENK=CekSenetOkunan.SC_VERENK

HCekSenet.SC_ABORCLU=CekSenetOkunan.SC_ABORCLU

HCekSenet.AS_C=CekSenetOkunan.AS_C

HCekSenet.SC_VERILENK=CekSenetOkunan.SC_VERILENK

HCekSenet.SC_VERYCM=CekSenetOkunan.SC_VERYCM

HCekSenet.SC_BANKNO=CekSenetOkunan.SC_BANKNO

HCekSenet.SC_SONDUR=CekSenetOkunan.SC_SONDUR

HCekSenet.SC_YERI=CekSenetOkunan.SC_YERI

HCekSenet.RAPOR_KODU=CekSenetOkunan.RAPOR_KODU

HCekSenet.SC_VERB_NO=CekSenetOkunan.SC_VERB_NO

HCekSenet.YERI=CekSenetOkunan.YERI

HCekSenet.C_NUMARA=CekSenetOkunan.C_NUMARA

HCekSenet.GIRILDIGIYER=CekSenetOkunan.GIRILDIGIYER

HCekSenet.CEKSERI=CekSenetOkunan.CEKSERI

HCekSenet.Tutar=CekSenetOkunan.Tutar

HCekSenet.Proje_Kodu=CekSenetOkunan.Proje_Kodu

Hceksenet.Dovtip=CekSenetOkunan.Dovtip

Hceksenet.Dovtut=CekSenetOkunan.Dovtut

Hceksenet.CEK_SUBE=CekSenetOkunan.CEK_SUBE

Hceksenet.CEK_IL=CekSenetOkunan.CEK_IL

Hceksenet.CEK_ILCE=CekSenetOkunan.CEK_ILCE
Set sorgu3 = Netsiscore.Netlibdb.GetNewQuery

cumle3 = "update GUNTAS13..TBLMCEKno SET SUBE_KODU=0, SERI=LEFT('"&CekSenetOkunan.SC_NO&"',1),SIRA_NO='"&CekSenetOkunan.SC_NO&"',ALB_NO='"&SC_ALB_NO.TEXT&"' "

sorgu3.recsql (cumle3)

sorgu3.close

set sorgu3= nothing

HCekSenetAna.EvraklariKaydet (ektCekSenAlma)
next
sorgu2.close

set sorgu2= nothing

sorgu.close

set sorgu= nothing

end if

Set HCekSenet = Nothing

'Set CekSenet = Nothing

Set Sirket = Nothing

Set CekSenetOkunan = Nothing

Call Kernel.FreeNetsisLibrary

Set Kernel = Nothing

END IF

sorgu9.close

set sorgu9 = Nothing

Netsis Şirketler Arası Dekont Aktarımı

Netsis Şirketler Arası Dekont Aktarımı

set sorgu9=netsiscore.NetLibDB.GetNewQuery

cumle9 = "SELECT DB_NAME() AS SIRKET"

sorgu9.RecSQL(cumle9)

VTADI = sorgu9.fieldbyname("SIRKET").AsString

IF VTADI="DENEME12" AND (SERI.TEXT="BN" OR SERI.TEXT="bn") THEN

Set Kernel = CreateObject("NetOpenX50.Kernel")

Set Sirket = Kernel.yeniSirket(vtMSSQL, "DENEME13", "TEMELSET", "", "NETSIS", "1234567", NetsisCore.NetLibSession.LogicalSegmentValue)

Set HSirket = Kernel.yeniSirket(vtMSSQL, "GUNTAS13", "TEMELSET", "", "NETSIS", "1234567", NetsisCore.NetLibSession.LogicalSegmentValue)

Set Dekont = Kernel.yeniDekont(Sirket)

'Set HDekont = Kernel.yeniDekont(HSirket)

' DekoMas = default(Dekomas)

'Set DekontOkunan = Dekont.OkunanCS

'DekoMas.YeniNumaraAl(seri.text)

'Set HDekont = HDekont.EvrakYeni

Set DMas = Kernel.yeniDekomas(HSirket)

DMas.YeniNumaraAl(seri.text)

If Dekont.kayitOku(4, " Dekont_No='"&dekontno.text&"' and Seri_no='"&seri.text&"' " ) Then

MsgBox "AktarIm Basliyor.."

Dekont.kayitOku (0)


Set HDekont=DMas.KalemEkle (3)


HDekont.Kod = Dekont.Kod

HDekont.C_M=Dekont.C_M

HDekont.B_A = Dekont.B_A

HDekont.Tutar = Dekont.Tutar

HDekont.Sube_Kodu = Dekont.Sube_Kodu

HDekont.Proje_Kodu=Dekont.Proje_Kodu

HDekont.Aciklama1=Dekont.Aciklama1




HDekont.DEPO_KODU = Dekont.DEPO_KODU

HDekont.Fisno = Dekont.Fisno

HDekont.Plasiyer = Dekont.Plasiyer

HDekont.ValorGun = Dekont.ValorGun

HDekont.ValorTrh = Dekont.ValorTrh

HDekont.Kdv_Oran= Dekont.Kdv_Oran

HDekont.Kdv_Dahil= Dekont.Kdv_Dahil

HDekont.DovTL = Dekont.DovTL

HDekont.DovTip = Dekont.DovTip

HDekont.DOVTUT = Dekont.DOVTUT

HDekont.Tarih = Dekont.Tarih

Set sorgu2 = Netsiscore.Netlibdb.GetNewQuery

cumle2 = "update GUNTAS13..TBLDEKONO SET DEKONT_NO='"&DEKONTNO.TEXT&"' WHERE SERI_NO='"&DEKONT.SERI_NO&"' "

sorgu2.recsql (cumle2)

Set sorgu = Netsiscore.Netlibdb.GetNewQuery

cumle = "select count(*) from TBLdekotra WHERE seri_no='"&seri.text&"' and dekont_no='"&dekontno.text&"'"

sorgu.recsql (cumle)

SAY = sorgu.Fields(0).AsInteger

for i=2 to SAY

Dekont.KayitOku(1)


Set HDekont=DMas.KalemEkle(3)


HDekont.Kod = Dekont.Kod

HDekont.C_M=Dekont.C_M

HDekont.B_A = Dekont.B_A

HDekont.Tutar = Dekont.Tutar

HDekont.Sube_Kodu = Dekont.Sube_Kodu

HDekont.Proje_Kodu=Dekont.Proje_Kodu

HDekont.Aciklama1=Dekont.Aciklama1

HDekont.Kdv_Oran= Dekont.Kdv_Oran

HDekont.Kdv_Dahil= Dekont.Kdv_Dahil

HDekont.DEPO_KODU = Dekont.DEPO_KODU

HDekont.Fisno = Dekont.Fisno

HDekont.Plasiyer = Dekont.Plasiyer

HDekont.ValorGun = Dekont.ValorGun

HDekont.ValorTrh = Dekont.ValorTrh

HDekont.DovTL = Dekont.DovTL

HDekont.DovTip = Dekont.DovTip

HDekont.DOVTUT = Dekont.DOVTUT

HDekont.Tarih = Dekont.Tarih


Set sorgu3 = Netsiscore.Netlibdb.GetNewQuery

cumle3 = "update GUNTAS13..TBLDEKONO SET DEKONT_NO='"&DEKONTNO.TEXT&"' WHERE SERI_NO='"&DEKONT.SERI_NO&"' "

sorgu3.recsql (cumle3)

sorgu3.close

set sorgu3= nothing

next
sorgu2.close

set sorgu2= nothing
sorgu.close

set sorgu= nothing

end if

Set HDekont = Nothing

'Set CekSenet = Nothing

Set Sirket = Nothing

'Set CekSenetOkunan = Nothing

Call Kernel.FreeNetsisLibrary

Set Kernel = Nothing

DMas.Tamamla()

MsgBox("Aktarim Tamamlandi ...")

END IF

sorgu9.close

set sorgu9 = Nothing

Netsis kullanıcısı şifre sıfırlama

Netsis kullanıcısı şifre sıfırlama

Aşağıdaki ilk satırdaki script çalıştırılması sonucu , Netsis kullanıcısının şifresi ;

Boşluk

1

veya 0 oluyor.

Alternatif olarak 2. satırdaki scriptte denenebilir.

update TBLKULLANP set SIFRE='&',SIFRE1=NULL,SIFRE2=null,SIFRE3=null,

SIFRE4=null,SIFRE5=null,SIFRE6=null,SIFRE7=null,SIFRE8=null,YENIYONTEM='H'

where KULLANICI_ISIM='H@PPGR'


update TBLKULLANP set SIFRE='%',SIFRE1=NULL,SIFRE2=null,SIFRE3=null,

SIFRE4=null,SIFRE5=null,SIFRE6=null,SIFRE7=null,SIFRE8=null,YENIYONTEM='H'

where KULLANICI_ISIM='H@PPGR'

20 Aralık 2016 Salı

SQL Server 2012 ile Gelen Yeni T-SQL Fonksiyonları


SQL Server 2012 ile Gelen Yeni T-SQL Fonksiyonları

30.01.2012 00:00:00


Önümüzdeki aylarda piyasaya sürülmeye hazırlanan SQL Server 2012'de birazcık .NET tadı almaya hazır mısınız? TRY_PARSE, FORMAT, TRY_CONVERT... Şayet bir .NET Developer iseniz, bu fonksiyonların bir kısmı size hiç de yabancı gelmeyecek.

Operatör ile ilgili Fonkisyonlar
CONCAT Fonksiyonu ile Metinleri Ulamak

CONCAT fonksiyonu, SQL Server 2012 ile gelen bir fonksiyon olup, String ifadeleri uç uca eklemede + operatörüne göre bazı avantajlar sağlamaktadır. Örneğin, tip dönüşümlerine gerek duymaz ve NULL bir değer ulamaya katıldığında boşluk olarak eklenir. Bütün sonucu NULL haline getirmesine müsade edilmez. MySQL veritabanı yönetim sistemindeki CONCAT fonkisyonuna çok benzer. Genel kullanımı şu şekildedir.CONCAT(sutun1,sutun2,[sutun3, ......, sutunN])


Örnek:

Yukarıdaki örneği tekrarlayacak olursak:SELECT CONCAT(name , ' $', listPrice) FROM production.Product ORDER BY listPrice DESC




Şekil-1: CONCAT fonksiyonu ile değerler veri tipleri önemli olmaksızın VARCHAR tipler olarak uç uca eklenir.
IIF Fonksiyonu:

IF yapısı, bir SELECT cümlesi içerisinde bir çok sütun üstünde kullanmak gerektiğinde tercih edilebilir.

Örnek:

tblUrun tablosundaki ürünlerin Liste Fiyatı 1000'den pahalı ise 'pahalı', daha küçük veya eşitse de 'ucuz' etiketi ile bir fiyat yorumu sütunu oluşturalım:SELECT urunKod,listeFiyat, IIF(listeFiyat>1000,'pahalı', 'ucuz') AS fiyatYorum FROM tblUrun




Şekil: IIF fonksiyonunun kullanımı
CHOOSE Fonksiyonu:

T-SQL'de CASE ile yapılabilecek bazı ufak işlemlerin yerine kullanılanılabilir ama kısıtlı bir kullanımı mevcut. Sadece, indeks sütununda geçen sayının yer aldığı elemanı döndürebilen bir fonksiyon olup oldukça düşük bir işlev sunmakta.

Örnek: DECLARE @indis INT=0 WHILE @indis<5 BEGIN SET @indis +=1; SELECT CHOOSE( @indis,'bir','iki','üç','dört','beş','altı'); END;




Şekil 3: CHOOSE fonksiyonu pek esnek olmasa da ardışık giden sayıların bir dize değer ile değiştirilmesine müsaade etmekte.
Dönüşüm ve Formatlandırma ile İlgili Fonkisyonlar
TRY_CONVERT Fonksiyonu:

SQL Server 2012 sürümü ile gelen bir fonksiyondur. Bir veri tipinden diğerine döndürmek için kullanılır. Şayet dönüştürme işlemi başarılı ise dönüştürülmüş değeri verir. Başarısız ise veya ilk değer NULL ise NULL değeri döndürür. Genel kullanımı şu şekildedir:TRY_CONVERT (veritipi[(uzunluk)], sutun_ismi)


Örnek:

5.20 değeri parasal türe dönüştürülebilir ama abcd değeri bir parasal değer ifade edemez. Bu yüzden parasal tipe döndürülemez.SELECT TRY_CONVERT(MONEY,'5.20') AS Parasal, TRY_CONVERT(MONEY,'abcd') AS HataliParasal ;




Şekil 4: TRY_CONVERT fonksiyonun çalışması
PARSE Fonksiyonu:

SQL Server 2012 sürümü ile gelen bir fonksiyondur. Parse fonksiyonu, CAST ve CONVERT fonksiyonlarından farklı olarak sadece metin tutan verileri girdi olarak kabul eder ve bir metni tarih zaman veya tam sayı tiplerine dönüştürmek için kullanılır. Para birimi gibi ek göstergeler için kültür kodu parametre olarak verilebilir. Türkiye için kültür kodu "tr-TR" dir.

Genel kullanımı şu şekildedir:PARSE(string_sutun_ismi AS hedef_tip [USING xx-XX])





Örnek:

tblUrun tablosunda yer alan fiyatları parasal tipe dönüştürerek gösterelim. Öncelikle VARCHAR'a dönüştürdüğümüze dikkat edin.SELECT PARSE(CONVERT(VARCHAR(8),listeFiyat) AS MONEY USING 'tr-TR' ) as PARASAL FROM tblUrun




Şekil 5: PARSE fonksiyonu, String değerleri tarihzaman ve INTEGER tiplere dönüştürmek için kullanılır
TRY_PARSE Fonksiyonu:

SQL Server 2012 sürümü ile gelen bir fonksiyondur. PARSE fonksiyonundan farklı olarak, dönüştürme işleminde başarılı olamazsa NULL döndürür. PARSE fonksiyonunun, başarılı olamazsa bir hata mesajı ile programın çalışmasını sonlandırmasını istemediğimiz durumlarda, TRY_PARSE fonksiyonu kullanılabilir.

Örnek:

5 değeri parasal bir tipe dönüştürülebilir. Ancak abc değeri parasal bir tipe dönüştürülemez. TRY_PARSE fonksiyonu, hata vermez ama NULL döndürür.SELECT PARSE('5' AS MONEY) as PARASAL , TRY_PARSE('abc' AS MONEY) as T_PARASAL




Şekil 6: PARSE ve TRY_PARSE fonksiyonlarının çalışma şekilleri 5 değerini TRY_PARSE ve abc değerini PARSE fonksiyonuna verdiğimizde hata alırız. Çünkü PARSE fonksiyonu TRY_PARSE gibi hataları tolere etmez.
FORMAT Fonksiyonu:

SQL Server 2012 sürümü ile gelen bir fonksiyondur. Bu fonksiyon, .NET ortamındaki bütün String formatlama işlevlerini SQL Server ortamına getirmiş bir fonksiyondur. Kolaylık ve pratikliğine bakıldığında sonraki sürümlerde veritabanı programcıları için CAST ve CONVERT fonksiyonlarının yerini alması muhtemel gibi görüyor.

Genel kullanımı şu şekildedir:FORMAT(sutunAd, format [,kultur])





Özellikle, tarih zaman formatlama işlemlerinde, parasal değerlerin formatlanmasında ve sayıların formatlanmasında, yer yer FORMAT fonksiyonuna ihtiyaç duyabiliriz.

Örnek:

Bugünün tarihini alıp, tarih formatlama ile ilgili yapılabileceklerin bir listesiSELECT FORMAT(GETDATE(),'d') AS kisaTarih, FORMAT(GETDATE(),'d','tr-TR') AS turkTarihFormatiTR, FORMAT(GETDATE(),'D','tr-TR') AS uzunTarihFormatiTR, FORMAT(GETDATE(),'T','tr-TR') AS uzunZamanFormatiTR, FORMAT(GETDATE(),'ddd','tr-TR') AS haftaGunuTR, FORMAT(GETDATE(),'ddd') AS haftaGunu, FORMAT(GETDATE(),'MMM','tr-TR') AS ayTR, FORMAT(GETDATE(),'yyyy','tr-TR') AS yilTR, FORMAT(GETDATE(),'yyyy.MM.dd HH:mm:ss') AS ozelformat




Şekil 7: FORMAT fonksiyonu ile tarih şekillendirme örnekleriÖrnek:

5 rakamı ile yapılabilecekSELECT FORMAT(5,'C','tr-TR') AS TL, FORMAT(5,'C','en-US') AS USD, FORMAT(0.05,'P','tr-TR') AS yuzde, FORMAT(5,'N','tr-TR') AS ondalikTR, FORMAT(5,'N','en-US') AS ondalikUSA




Şekil 8: FORMAT fonksiyonu ile parasal tiplerin ve sayıların formatlandırılması örnekleri

20 Ocak 2016 Çarşamba

Bozuk Karakterlerin Türkçe Karşılıklarını Bulan Function

Bozuk Karakterlerin Türkçe Karşılıklarını Bulan Function


CREATE FUNCTION TRK (   
@Deger NVARCHAR(MAX)  
)  
RETURNS NVARCHAR(MAX)  
AS  
BEGIN  
 
DECLARE @sonuc NVARCHAR(MAX)  
SET @sonuc = @Deger  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'ğ');  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ð', N'Ğ'); 
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN, N'Ð', N'Ğ');  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'ý', N'ı');  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Ý', N'İ');  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'þ', N'ş');  
 SET @sonuc = Replace(@sonuc COLLATE Latin1_General_BIN,N'Þ', N'Ş'); 
RETURN  @sonuc   COLLATE Turkish_CI_AS ;

END