Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen Commandx »

Arkadaşlar Sql Sorguda Türkçe karakter ile başlayan İ,
Ö Ü, Ç, Ş ile başlayan isimleri Dbgridde Z karakterli isimlerin sonunda sıralıyor.
Bunu nasıl Düzeltebilirim?
Yani Adsoyad adında bir sütunum var.
Bu sütunda adından da anlaşılacağı gibi Adsoyadlar kayitli
Örneğin.
Ahmet
Behzat
.vs
. vs
Zeki
Çiğdem
İsmet
Ömer
Şakir
Sıralanmakta.

Bunu
------
Ahmet
Behzat
Çiğdem
ismet
Ömer
Şakir
Zeki

Sıralanmasını nasıl saglayabilirim
Order by Asc olarak zaten sql yaptım
sonuç türkçe harf a to z olmuyor.
İngilizce a to z olmakta.
Unidac interbase kullanıyorum
Firebird 2.5 kullaniyorum
karakter setler turkce hepsi 1254 pxw turkish
Kullandığım Db grid standart dbgrid.
Acaba uyumsuzluk Dbgridde mi?
En son Commandx tarafından 03 Ara 2018 07:35 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen mkysoft »

Kullandığının encoding'i kontrol edin.
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen mehmetantalya »

veya sorgu sonuna

Kod: Tümünü seç

order by adisoyadi collate pxw_turk
ekleyin
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen mkysoft »

Hangi veri tabanını kullanıyorsunuz?
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen Commandx »

mkysoft yazdı: 28 Kas 2018 08:55 Hangi veri tabanını kullanıyorsunuz?
Firebird kullaniyorum, Acces'te böyle bir olumsuzluk yoktu Pxw_turk denedim, Win1254 denedim unidac bileşeninde uniconnection nesnesinde ayarladım ,
Querye de order by collate Pxw_turk ekleyeyim bunu deneyeceğim.
ha birde uni bileşenleri ile ilgili birde provider bileşenide var onun üzerinde herhangi bir ayar bulunmuyor.
Yarın ilk iş yeni bir veritabanı oluşturup Pxw_turk değil de UTF8 deneyeceğim
Normalde "S" den sonra "Ş" gelmesi gerekirken "P" ile başlayan isimler geliyor nitekim "Z" den sonra ingiliz alfabesinde bulunmayan Türkçe harfler sıralanıyor.
A to Z olmuyor.
Sanırım karakter setler yapılırken Türkçe'ye gıcıklık etmişler.
Hani o karakter setlerin olduğu dosyayı bulsam üzerine Reverse engineering yapacam da bulamıyorum.
Bilen varsa söylesin.
filemon gibi watcher'lerle bulunabilir bayağı ugrastirir
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen mehmetantalya »

Yazdığım kodu denerseniz muhtemelen duzelecektir.
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Sql Sorguda Türkçe karakter ile başlayanlar

Mesaj gönderen Commandx »

Evet işyerime gelip projeyi derleyip dizilişi gördükten sonra Hey Canını yediğim!! , diye içimden geçti...
order by adsoyad asc (Ascending)
yerine
order by adsoyad collate pxw_turk ASC
veya
order by adsoyad collate pxw_turk DESC
yazınca 16500 kayıt sırası düzelmiş oldu Teşekkürü bir borç bilirim.
Ayağın(ız) Taşa değmesin
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
mkysoft
Kıdemli Üye
Mesajlar: 3103
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Re: Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen mkysoft »

Bu şekilde günü kurtarmış olabilir ancak bir encoding sorununuz var. Yukarıdaki şekilde kullandığınızda düzeliyorsa yarattığınız index düzgün değildir, index olmadan performans problemi yaşayabilirsiniz.
Kullanıcı avatarı
freeman35
Admin
Mesajlar: 2356
Kayıt: 12 Haz 2003 04:05
Konum: merkez camii yanı

Re: Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen freeman35 »

Kod: Tümünü seç

CREATE DOMAIN DM_STR10 AS VARCHAR(10) CHARACTER SET WIN1254 COLLATE PXW_TURK;
DM_Aciklama, DM_Seri_No vs gibi tanımlamaları nekadar çok kullanırsanız, karmaşaları azaltırsınız, uyuşmazlıkların önüne geçersiniz. Bu vertabanı kısmı ve pascal C yada neyle kod yazıyorsanız o dil içinde geçerli
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5

Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Kullanıcı avatarı
Commandx
Üye
Mesajlar: 181
Kayıt: 01 Oca 2008 05:34

Re: Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen Commandx »

Aslında niyetim Stored Procedure oluşturup delphi tarafından tetiklemekti fakat bir türlü beceremedim.
Viewi bile zar zor hatalarla oluşturdum.
View ile SP nin mantığını çok iyi biliyorum hatta oluşturulduktan sonra veritabanı içinde statik hazır bir bağ-yapının oluştuğunu dahi hayal edebiliyorum fakat FB de Bunu uygulamaya dökmeyi beceremedim.Ikudugum izlediğim videolarda Ne nerden geliyor nereye ne yazacağız, neyi hangi pencerede yazacaz hangi butona basacaz, yok malesef, anlatanlar bunu söyleme gereği duymuyor, bende şöyle bir şey diyebilirim "Dostum , eğer mutlu degilsen lunaparka eğlenmeye gidebilirsin" evet maalesef bazı insanların anlatım tarzları bu şekilde.
İnternette adam gibi anlatılan bir örnek bulamadım.
Ib expert ile tüm denemelerime uğraşlarıma rağmen sadece view oluşturabildim index oluşturabildim Generator ve Trigger oluşturabildim. Kullandığım eski interbase bileşenlerinden ibtable de sakat bir yerler olduğunu farkettim ve bu bileşenleri kullanmayı terkettim, yerine FIB+ bazen de UNIDAC kullandım ve standart IB bileşenlerindeki hataları heleki transactiondan kaynaklanan hataları görenez oldum.
Bunu yaparken ister inanın ister inanmayın Firebird de view ile ilgili harika şeyler de öğrendim (Sorgulama Hızı, Veriye ulaşma cevap hizi veri girişi sırasında yalancı tablo gibi davranması)
Resimli anlatım yapanların nedense hepsi konunun en kritik yerinde "yapılabilir" "edilebilir" "kullanabilirsin" gibi iğidüğü belirsiz neyin nerden geldiğini ancak müneccimlerin anlayacağı tarzda konu anlatımlariyla bolca karşılaştım, ve aklımı bulandırmamak için bu tarzda anlatım yapanların üzerini çizdim, tekrar eski usul SQL kodları kullanmaya başladım.
Günü kurtarmak ise evet maalesef günü kurtardım, varsın olsun 0.040 saniyede gelmeyen veri 0.57 saniyede gelsin , sorun değil, internet üzerinden ise 2 sn de gelsin yine sorun değil.
Asıl Sorun, anlatan kişinin kendini ifade edememesi, İŞLEM BASAMAKLARINI ATLAYARAK ANLATMASI.
Stored procedure oluşturma tetikleme hakkında hiç birşey anlayamadım, hatta kopuk bilgi var.
Yaptığım VT yazılım pek hızlı çalismayabilir, ama uzun vadede de kisa vadede de 20.000 tl lik çok kullanıcılı yazılımlardan kat be kat iş görüyor, yavaşlama olayinin önüne geçmek için her kaydedilen aylik verileri bir arşive yedekleyerek başka bir tabloya aktarıp gerektiginde bağlanarak o anki tabloyu boşaltıp sıfır kilometre ayarında. tekrar kullanima hazirlamak SP nin hizina yetismemi sağladı.
Bu arada bu sitede kimse üstüne alınmasın, söz meclisten dışarı.
Buradaki bilgiler, tecrübeler ALTIN niteliğinde.
İçime dert oldu, veritabanı işinde SP oluşturmayı öğrenemedim, bunu da öğrenecem
http://www.delphibasics.co.uk/RTL.asp?Name=DaysBetween
http://www.neonhaber.com/Static/mega-co ... index.html
www.delphican.con
Function PARSE( text, ilk, son:String ): String; //
begin
Delete(Text, 1, pos(ilk, Text) + Length(ilk)-1);
Result := Copy(Text, 1, Pos(Son, Text)-1);
end;
mehmetantalya
Üye
Mesajlar: 189
Kayıt: 30 Eyl 2013 10:17

Re: Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen mehmetantalya »

viewtopic.php?t=644
viewtopic.php?f=19&t=8804&hilit=stored
buralara bakabilirsiniz. Ayrica kaldirilmadiysa yanlis hatirlamiyorsam sitede bununla ilgili seminer videolarida mevcuttu.
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Sql Sorguda Türkçe karakter ile Listelenenler [Çözüldü]

Mesaj gönderen yusuf simsek »

mehmetantalya yazdı: 05 Ara 2018 02:23 viewtopic.php?t=644
viewtopic.php?f=19&t=8804&hilit=stored
buralara bakabilirsiniz. Ayrica kaldirilmadiysa yanlis hatirlamiyorsam sitede bununla ilgili seminer videolarida mevcuttu.
Ben de Stored Procedure kullanımını Fahrettin Abimizin ve Fatih Kardeşimizin makalelerinden öğrendim...

Makaleleri okuduktan sonra takıldığın noktaları yazarsan seve seve yardımcı olabiliriz...
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
Cevapla