Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Türkçe karakter sorunu
#1
Merhabalar,,

Kiralık Sunucuda SQL Server da Türkçe karakterler kayıt edilip, okunduğu halde

Bu tabloyu delphi ye yansıttığımda ı,ğ,ş,İ,Ğ,Ş harflerini değiştriyor.

Bunu nasıl halledebilirim.

Normalde kendi bilgisayarımda herhangi bir problem olmuyor. Ama Sunucudu Olmuyor.

   
Cevapla
#2
(31-08-2024, Saat: 15:00)barissagir Adlı Kullanıcıdan Alıntı: Merhabalar,,

Kiralık Sunucuda SQL Server da Türkçe karakterler kayıt edilip, okunduğu halde

Bu tabloyu delphi ye yansıttığımda ı,ğ,ş,İ,Ğ,Ş harflerini değiştriyor.

Bunu nasıl halledebilirim.

Normalde kendi bilgisayarımda herhangi bir problem olmuyor. Ama Sunucudu Olmuyor.

bunu deneyebilirsin  sunucuda veya local bilgisayardaki database dosyasına aşağıdaki fonksiyonu ekleyin
database seçili iken new query aç yapıştır 

Create Function  [senin veritabanını adı]
GO
/****** Object:  UserDefinedFunction [dbo].[TRK]    Script Date: 31.08.2024 15:08:07 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[TRK](@A NVARCHAR(4000))
RETURNS NVARCHAR(4000)  
AS 
BEGIN
 DECLARE @TMP NVARCHAR(4000) 
 SET @TMP = REPLACE(@A   COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'Ğ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Ş')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'İ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'ğ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N'ş')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'ı')
 RETURN @TMP
END
 
kullanırken Türkçe sorunu olan alan isimlerini bu foksiyon ile çağır

örnegi select  ADI from xx database yerine 
select TRK(ADI) from xx database

sorun delphi veya sizde değilde  sql kurulumundaki  Server Collation  =  Turkish_CI_AS   ayarından
"…De ki: "Hiç bilenlerle bilmeyenler bir olur mu? Şüphesiz, temiz akıl sahipleri öğüt alıp-düşünürler" (Zümer Suresi, 9)
Cevapla
#3
(31-08-2024, Saat: 15:18)cinarbil Adlı Kullanıcıdan Alıntı:
(31-08-2024, Saat: 15:00)barissagir Adlı Kullanıcıdan Alıntı: Merhabalar,,

Kiralık Sunucuda SQL Server da Türkçe karakterler kayıt edilip, okunduğu halde

Bu tabloyu delphi ye yansıttığımda ı,ğ,ş,İ,Ğ,Ş harflerini değiştriyor.

Bunu nasıl halledebilirim.

Normalde kendi bilgisayarımda herhangi bir problem olmuyor. Ama Sunucudu Olmuyor.

bunu deneyebilirsin  sunucuda veya local bilgisayardaki database dosyasına aşağıdaki fonksiyonu ekleyin
database seçili iken new query aç yapıştır 

Create Function  [senin veritabanını adı]
GO
/****** Object:  UserDefinedFunction [dbo].[TRK]    Script Date: 31.08.2024 15:08:07 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
ALTER FUNCTION [dbo].[TRK](@A NVARCHAR(4000))
RETURNS NVARCHAR(4000)  
AS 
BEGIN
 DECLARE @TMP NVARCHAR(4000) 
 SET @TMP = REPLACE(@A   COLLATE LATIN1_GENERAL_BIN, CHAR(208), N'Ğ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(220), N'Ü')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(222), N'Ş')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(221), N'İ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(214), N'Ö')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(199), N'Ç')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(73), N'I')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(240), N'ğ')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(252), N'ü')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(254), N'ş')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(105), N'i')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(246), N'ö')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(231), N'ç')
 SET @TMP = REPLACE(@TMP COLLATE LATIN1_GENERAL_BIN, CHAR(253), N'ı')
 RETURN @TMP
END
 
kullanırken Türkçe sorunu olan alan isimlerini bu foksiyon ile çağır

örnegi select  ADI from xx database yerine 
select TRK(ADI) from xx database

sorun delphi veya sizde değilde  sql kurulumundaki  Server Collation  =  Turkish_CI_AS   ayarından

Cevap için çok teşekkür ederim.  Şimdi halletttim. varchar olan alanları nvarchara değiştirdim. Sorun kalmadı.

Allah razı olsun.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  String içinde karakter arama barissagir 3 1.948 07-02-2024, Saat: 17:57
Son Yorum: RAD Coder
  Toplu insert işlemi hız sorunu (Çözüldü) adelphiforumz 9 5.112 13-12-2021, Saat: 20:23
Son Yorum: apachi2006
  SQL 2019 bekleme sorunu m_ekici 13 9.762 28-10-2020, Saat: 12:28
Son Yorum: m_ekici
  MSSQL Sorgulama Sorunu bkantur 11 8.866 14-09-2020, Saat: 13:50
Son Yorum: sabanakman
  MSSQL StoreProcedure Performans Sorunu (Çözüldü) adelphiforumz 23 18.844 18-09-2019, Saat: 14:13
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi