sql 2005 türkçe karakter sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
sql 2005 türkçe karakter sorunu
merhaba arkadaşlar
network üzerinde netsis adında bir muhasebe programı kullanılıyor ve ben buna entegre bi program yazmak istiyorum
db oluşturulurken callation SQL_Latin1_General_CP1_CI_AS olarak seçilmiş
ve haliyle ben delphi ile bağlandığımda (ADO) türkçe karakter sorunu yaşıyorum.
ado connection nesnesinde ki auto translate=false yapıyorum görünüm olarak sorun kalmıyor
fakat sorgularıda (İ,Ş,Ö..vb) türkçe karakterlerde sorun var
yardımcı olursanız sevinirim
iyi çalışmalar
network üzerinde netsis adında bir muhasebe programı kullanılıyor ve ben buna entegre bi program yazmak istiyorum
db oluşturulurken callation SQL_Latin1_General_CP1_CI_AS olarak seçilmiş
ve haliyle ben delphi ile bağlandığımda (ADO) türkçe karakter sorunu yaşıyorum.
ado connection nesnesinde ki auto translate=false yapıyorum görünüm olarak sorun kalmıyor
fakat sorgularıda (İ,Ş,Ö..vb) türkçe karakterlerde sorun var
yardımcı olursanız sevinirim
iyi çalışmalar
saygılarımla
Deniz UZUN
Deniz UZUN
Re: sql 2005 türkçe karakter sorunu
bilmiyorum sorununu çözdünmü ama SQL cümlelerini yazarken sabit SQL yazmak yerine parametre kullan ..
kodunda sana sonuç dönmezken
kodunu kullanırsan sonuç dönecektir ..
Kod: Tümünü seç
AdoQuery1.SQL.Text := 'select * from tablo where alan=''İZMİR''';
Kod: Tümünü seç
AdoQuery1.SQL.Text := 'select * from tablo where alan=:ad';
AdoQuery1.Parameters[0].Value:='İZMİR';
Kim ilim öğrenir sonra da onu gizlerse âhirette onun ağzına ateşten bir gem vurulur. (Hadis-i Şerif)
- sabanakman
- Kıdemli Üye
- Mesajlar: 3077
- Kayıt: 17 Nis 2006 08:11
- Konum: Ah bi Antalya olaydı keşke (Ankara)
Re: sql 2005 türkçe karakter sorunu
ConnectionString ayarlanırken AutoTranslate özelliği varsayılan olarak True olmaktadır. Bu False yapıldığında sorun düzelecektir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
_________________
Derin olan kuyu değil kısa olan iptir. - .
-
- Üye
- Mesajlar: 136
- Kayıt: 18 Oca 2005 05:24
- Konum: İzmir
Re: sql 2005 türkçe karakter sorunu
Benimde başıma aynı sorun geldi.
Parametrede göndermek türkçe karakterlerdeki problemi çözmüyor.
ben şöyle bir çözüm buldum .
kullanımıda şöyle
Parametrede göndermek türkçe karakterlerdeki problemi çözmüyor.
ben şöyle bir çözüm buldum .
Kod: Tümünü seç
function WinToSQL(s: String): String;
const
win: string = 'ŞşİıĞğ';
SQL: string = 'ÞþÝýÐð';
var
j: byte;
begin
for j := 1 to length(win) do
while pos(win[j], s) > 0 do
s[pos(win[j], s)] := SQL[j];
result := s;
end;
Kod: Tümünü seç
winToSQL('DİŞLİ');
Her iyinin içinde bir Kötülük.Her Kötnün içide de bir iyilik vardır
Re: sql 2005 türkçe karakter sorunu
bende uzun zamandır bu konudan muzdarip idim devart ve devexpress bileşenleri çalışıyordum bu sorunu aşmak için auto translate i false yapmanın yanısıra devexpress bileşeninin font özelliklerinde charset özelliğini 'TURKISH_CHARSET' yaparsanız filtrelemede de sorun yaşanmadan problem çözülmüş olur.
Kader Beyaz kağıda sütle yazılmış yazı
Elindeyse Beyazdan gel de ayır Beyazı
Elindeyse Beyazdan gel de ayır Beyazı
Re: sql 2005 türkçe karakter sorunu
Connection’ın Properties kısmına veritabanında kullandığınız codepage yazmak mesela iyi bir çözüm olur;
codepage=utf8
veya
codepage=latin5
veya
codepage=PXW_TURK
....
birebir aynı olmaz ise sorun yaşamaya devam edersiniz...
sizin ki ise;
codepage=SQL_Latin1_General_CP1_CI_AS
yazmanız yeterli oalcaktır.... kolay gelsin sorun bu şekil çok kolay şekilde çözülecektir...
codepage=utf8
veya
codepage=latin5
veya
codepage=PXW_TURK
....
birebir aynı olmaz ise sorun yaşamaya devam edersiniz...
sizin ki ise;
codepage=SQL_Latin1_General_CP1_CI_AS
yazmanız yeterli oalcaktır.... kolay gelsin sorun bu şekil çok kolay şekilde çözülecektir...
Re: sql 2005 türkçe karakter sorunu
Arkadaşlar araştırma yaparken burayı buldum ve bende Netsis veri tabanına sorgu yazıyorum Türkçe karakterde benimde başımda, yukarıdaki yazılanların hepsini yapmama rağmen ben sorunumu çözemedim.
ilk önce bağlandığım veri tabanımın auto translate olayını false yaptım olmadı sonra function yazmışsınız onu kullandım olmadı
TBLSTSABIT deki Grup Kodu nu kullanıyorum Grup_Kodu='TİBET'
function bu ve kullanımı da ;
ensonda bunu ekledim ama olmadı
Yardımcı olur musunuz?
ilk önce bağlandığım veri tabanımın auto translate olayını false yaptım olmadı sonra function yazmışsınız onu kullandım olmadı
TBLSTSABIT deki Grup Kodu nu kullanıyorum Grup_Kodu='TİBET'
Kod: Tümünü seç
function WinToSQL(s: String): String;
const
win: string = 'ŞşİıĞğ';
SQL: string = 'ÞþÝýÐð';
var
j: byte;
begin
for j := 1 to length(win) do
while pos(win[j], s) > 0 do
s[pos(win[j], s)] := SQL[j];
result := s;
end;
Kod: Tümünü seç
'A.STHAR_BF * A.STHAR_GCMIK AS BRUT_TOPLAM FROM TBLSTHAR AS A INNER JOIN TBLFATUIRS AS B ON B.FATIRS_NO=A.FISNO INNER JOIN TBLSTSABIT AS D ON A.STOK_KODU=D.STOK_KODU '+
'INNER JOIN TBLCASABIT AS E ON B.CARI_KODU=E.CARI_KOD WHERE A.STHAR_TARIH between :IsTarih1 AND :IsTarih2 AND D.GRUP_KODU='+#39+''+WinToSQL(Edit9.Text)+''+#39+' AND A.STHAR_FTIRSIP=''2'' '+
'GROUP BY A.STOK_KODU,A.STHAR_GCMIK, A.STHAR_BF, D.STOK_ADI,D.GRUP_KODU,E.CARI_KOD, E.CARI_ISIM, B.FATIRS_NO, A.STHAR_TARIH, B.BRUTTUTAR, B.SAT_ISKT,A.STHAR_SATISK, A.STHAR_SATISK2, '+
'A.STRA_SATISK3, A.STRA_SATISK4, A.STRA_SATISK5, A.STRA_SATISK6, B.GEN_ISK1O, B.GEN_ISK1T, B.GEN_ISK2O, B.GEN_ISK2T, B.GEN_ISK3O, B.GEN_ISK3T, B.KDV, B.GENELTOPLAM';
Kod: Tümünü seç
Auto Translate=False;codepage=SQL_Latin1_General_CP1_CI_AS
Re: sql 2005 türkçe karakter sorunu
Aslında sistem default encoding ile başınız belada.
Ne yazarsanız yazın açıkça deklare etmediğiniz her durumda default encoding devreye girer ve karakterlerinizi kodlar.
Muhtemel sisteminizi ANSI -> 1254, yukardaki kodlarınızdan anlaşılan (SQL: string = 'ÞþÝýÐð';) varmak istediğiniz encoding latin1-> 1252
Kullandığınız text içeriklerinde kodlar ascii 127 üzerine çıktığınızda encoding farklılıkları kendini göstermeye başlayacaktır.
Bu durum bize (programcılara) ascii 127 altında tanımlanamamış karakterlerde kullanım zorluğu (nispeten) olarak dönecektir.
Bence konunun bu kısmına bir odaklanın...
Ne yazarsanız yazın açıkça deklare etmediğiniz her durumda default encoding devreye girer ve karakterlerinizi kodlar.
Muhtemel sisteminizi ANSI -> 1254, yukardaki kodlarınızdan anlaşılan (SQL: string = 'ÞþÝýÐð';) varmak istediğiniz encoding latin1-> 1252
Kullandığınız text içeriklerinde kodlar ascii 127 üzerine çıktığınızda encoding farklılıkları kendini göstermeye başlayacaktır.
Bu durum bize (programcılara) ascii 127 altında tanımlanamamış karakterlerde kullanım zorluğu (nispeten) olarak dönecektir.
Bence konunun bu kısmına bir odaklanın...
... Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!
Mustafa Kemal Atatürk...
Mustafa Kemal Atatürk...
Re: sql 2005 türkçe karakter sorunu
Bun da hata veriyor 'TEncoding;' D7 olduğu için mi acaba ?
Kod: Tümünü seç
procedure TForm14.BitBtn1Click(Sender: TObject);
Var Path: String;
myEncoding : TEncoding;
begin
Path:= Edit9.Text;
myEncoding := TEncoding.Default;
if (Edit9.Text = 'ASCII') then myEncoding := TEncoding.ASCII;
if (Edit9.Text = 'BigEndianUnicode') then myEncoding := TEncoding.BigEndianUnicode;
if (Edit9.Text = 'Default') then myEncoding := TEncoding.Default;
if (Edit9.Text = 'Unicode') then myEncoding := TEncoding.Unicode;
if (Edit9.Text = 'UTF8') then myEncoding := TEncoding.UTF8;
Memo1.Lines.SaveToFile(Path, myEncoding);
end;
Re: sql 2005 türkçe karakter sorunu
Netsis SQLServer kullanmıyor mu ? Unicode desteğini devreye sokmak için şunu dener misiniz ?
Tırnak işaretinin önüne bir tan büyük harf (N) koyun. Ben SQLServer sorgularımda bunu eksik etmem.
Tırnak işaretinin önüne bir tan büyük harf (N) koyun. Ben SQLServer sorgularımda bunu eksik etmem.
Kod: Tümünü seç
select .... where Grup_Kodu = N'TİBET'
Kod: Tümünü seç
select .... where Grup_Kodu like N'%TİBET%'
Re: sql 2005 türkçe karakter sorunu
Evet SQL kullanıyor mrmarman kardeşim ama ben bu şekilde kullanıyorum ;
GRUP_KODU='TİBET' olarak denedim yine filtre etmedi
'N' işareti NetOpenX için mi? ben kullanamadım direkt TBLSTSABIT tablosundan çekiyorum.
Kod: Tümünü seç
D.GRUP_KODU='+#39+''+Edit9.Text+''+#39+'
'N' işareti NetOpenX için mi? ben kullanamadım direkt TBLSTSABIT tablosundan çekiyorum.