![]() |
|
FireDac MS-SQL Türkçe karakter problemi - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: FireDac MS-SQL Türkçe karakter problemi (/showthread.php?tid=7324) |
FireDac MS-SQL Türkçe karakter problemi - mpirpanlar - 04-06-2023 Merhaba, Delphi 10.3 İle TMS Web Projesi geliştirmekteyim.. FireDac connection ile bağlantı sağlanmakta. Proje web sayfalarında (TxDataWebDataSet objeleri aracılığı ile) ekrandaki veriler MS-SQL'e gönderiliyor İlgili DB Collection değeri Turkish_CS_AS ve tüm string alanlar (NVarChar) formatında. DB tarafında elle Insert işlemi yapıldığında türkçe karakterde sıkıntı olmuyor. INSERT INTO Tablo(Alan1) VALUES('ırmak') Bu çalıştırılınca doğru veri oluşuyor. Bu sonuçta da DB tarafında bir sıkıntı olmadığını görüyoruz. Ancak web tarafından bir formdan yeni bir kayıt işlemi yapıldığında MS-SQL Profilerden izleme yaptığımızda SQL cümleri INSERT INTO Tablo(Alan1) VALUES('irmak') şeklinde oluşuyor. Web sayfasında char-set = Utf8 Burada sıkıntı FireDac tarafında mı? veya başka bir süreçte mi? FireDac bağlantı ayarlarında MS-SQL için herhangi bir CharSet parametresi bulamadım. TData seçilince CharSet ayarı geliyor ama MS-SQL seçince gelmiyor.???? FireDac MS-SQL Türkçe karakter problemi - eyln - 26-06-2023 Firedac "ODBCAdvanced :AutoTranslate=no" denermisiniz. Cvp: FireDac MS-SQL Türkçe karakter problemi - ermanispir@gmail.com - 29-06-2023 SQL kullanıcısı default language ingilizce olabilir sizde, türkçe yapıp deneyiniz. ayrıca veri girişi yaparken VALUES(N'irmak') bu şekilde de bir deneyiniz. Cvp: FireDac MS-SQL Türkçe karakter problemi - delphiman - 26-07-2023 (04-06-2023, Saat: 15:17)mpirpanlar Adlı Kullanıcıdan Alıntı: Merhaba, Bu sorunun nedeni, Unicode karakter seti desteği olan sürücünüzün kullanılmaması olabilir. FireDAC, MSSQL bağlantısı için Unicode karakter setini destekleyen iki sürücüye sahiptir: `SQL Server Native Client` ( `sqlncli11.dll`) ve `ODBC Driver for SQL Server` (`sqlncli10.dll`). Unicode karakterlerinin doğru işlenmesi için, `sqldrivername` özelliğini `sqlncli11` veya `sqlncli10` olarak ayarlamanız gerekiyor. Bağlantı ayarları örneğin şu şekilde olabilir: procedure TForm1.FormCreate(Sender: TObject);
begin
FDConnection1.DriverName := 'MSSQL';
FDConnection1.Params.Clear;
FDConnection1.Params.Add('Server=myserver; Database=mydatabase; User_Name=myusername; Password=mypassword;');
FDConnection1.Params.Add('DriverID=MSSQL');
FDConnection1.Params.Add('sqldrivername=sqlncli11'); // sqlncli10 or sqlncli11
FDConnection1.Params.Add('CharacterSet=utf8');
FDConnection1.Open;
end;
Unicode karakter seti desteği olan bir sürücü seçildikten sonra, Unicode karakter içeren veriler doğru şekilde işlenir ve sorun çözülebilir. Ayrıca web sayfasında `char-set` özelliğinin Utf-8 yerine Windows-1254 olarak ayarlanmasını deneyebilirsiniz. Bunun için `<meta>` etiketini `Windows-1254` ile tanımlayabilirsiniz: <meta charset="Windows-1254"> Bu da Unicode karakterlerin doğru işlenmesine yardımcı olabilir. Ancak yine de bağlantıda Unicode desteğinin ayarlanması önerilir. |