Selam,
Bildiğiniz gibi türkçe karakter sorunu yüzünden şğüçİı gibi dilimize özgü karakterlere sahip hesaplar bu harflerin sguci gibi harflere çevirilmesine sebep oluyor ve dupe yapılabiliyordu.
Bu sorunu çözmek aslında çok basit. Öncelikle, denetim masasına (control panel) girin. Açılan dizinde Bölge ve dil seçenekleri (Regional and language options) açın çıkan ekranda , gelişmiş seçeneğine gelin burada unicode kullanmayan programlar için dil ne kullanılsın ayarı vardır. Buradan İngilizce (Birleşik devletler) yani English (United States) seçiniz. İşimizi sağlama almak için standart ayarlardanda aynı dili seçiyoruz ve kaydediyoruz.
Database ayarlarını açıyoruz. Collation yani dizilim ayarımızın SQL_Latin1_CP1_CI_AS olduğundan emin olun değilse bu collation'a geçirin, yine aynı şekilde SQL Server ayarlarınıda kontrol ediniz.
Eğer diliniz türkçe ise ve kurulumu siz yaptıysanız büyük ihtimal Turkish_CI_AS olarak otomatik kurulmuştur. Bunu değiştirmek için SQL kurulum dosyasına komut satırından
komutunu girin ve değişmesini bekleyin. Bu şekilde yaparsanız reportserver ayarları gidebilir en temizi SQL sunucusunu baştan kurmaktır dili değişip kurduğunuzda otomatik olarak böyle kurar.
Bu ayarları yaptıktan sonra hiç bir şekilde ş -> s olarak algılanmaz ve benzeri durumlarda oluşmaz.
Yukarıda verdiğim komut SQL2008 için geçerlidir. 2005'dede çalışması muhtemel olup SQL2000 kullananların MSDN üzerinden anlatıma bakmaları daha yararlı olur.
Bu durumun oluşmasının en büyük sebebi ebenezer ve benzeri unicode kullanmayan programlar sistem dilini ODBC'den kullanır. Websiteleriniz unicode destekli olduklarından orada bu durum oluşmaz. Kısacası sistem dili türkçe olduğunda çok saçma bir şekilde bu tür bir convert olayı oluyor. Bu verdiğim adımları takip ederseniz bu olaydan kurtulursunuz.
Resim koymadım çünkü çok açık bir olay direkt olarak karşınıza çıkıyor komplike bir yapı değil.
İyi oyunlar.
Bildiğiniz gibi türkçe karakter sorunu yüzünden şğüçİı gibi dilimize özgü karakterlere sahip hesaplar bu harflerin sguci gibi harflere çevirilmesine sebep oluyor ve dupe yapılabiliyordu.
Bu sorunu çözmek aslında çok basit. Öncelikle, denetim masasına (control panel) girin. Açılan dizinde Bölge ve dil seçenekleri (Regional and language options) açın çıkan ekranda , gelişmiş seçeneğine gelin burada unicode kullanmayan programlar için dil ne kullanılsın ayarı vardır. Buradan İngilizce (Birleşik devletler) yani English (United States) seçiniz. İşimizi sağlama almak için standart ayarlardanda aynı dili seçiyoruz ve kaydediyoruz.
Database ayarlarını açıyoruz. Collation yani dizilim ayarımızın SQL_Latin1_CP1_CI_AS olduğundan emin olun değilse bu collation'a geçirin, yine aynı şekilde SQL Server ayarlarınıda kontrol ediniz.
Eğer diliniz türkçe ise ve kurulumu siz yaptıysanız büyük ihtimal Turkish_CI_AS olarak otomatik kurulmuştur. Bunu değiştirmek için SQL kurulum dosyasına komut satırından
Kod:
setup.exe /q /ACTION=RebuildDatabase /INSTANCENAME=MSSQLSERVER /SAPWD="sa-pwd" /SQLSYSADMINACCOUNTS="BUILTIN\ADMINISTRATORS" /SqlCollation=SQL_Latin1_General_CP1_CI_AI
Bu ayarları yaptıktan sonra hiç bir şekilde ş -> s olarak algılanmaz ve benzeri durumlarda oluşmaz.
Yukarıda verdiğim komut SQL2008 için geçerlidir. 2005'dede çalışması muhtemel olup SQL2000 kullananların MSDN üzerinden anlatıma bakmaları daha yararlı olur.
Bu durumun oluşmasının en büyük sebebi ebenezer ve benzeri unicode kullanmayan programlar sistem dilini ODBC'den kullanır. Websiteleriniz unicode destekli olduklarından orada bu durum oluşmaz. Kısacası sistem dili türkçe olduğunda çok saçma bir şekilde bu tür bir convert olayı oluyor. Bu verdiğim adımları takip ederseniz bu olaydan kurtulursunuz.
Resim koymadım çünkü çok açık bir olay direkt olarak karşınıza çıkıyor komplike bir yapı değil.
İyi oyunlar.