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.
[
attachment=2766]
(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
(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.