Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Firebird index sorunu
#1
Merhaba

Firebird 2.5 veri tabanında index tanımlayarak mükerrer kayıt kontrolü yaptırmak istiyorum. Fakat Ğ.İ.Ö.Ş.Ü.Ç harflerinde büyük ve küçük farklılıkla yazıldığında index alanı kaydı yokmuş gibi kabul edip kayıt işlemini gerçekleştiriyor örnek (ÇAY kaydı varken çay yazında bu kaydı kabul ediyor. Wın1254 ve TURKISH_CHARSET olarak tanımlı database firebird kısmında. Bu kontrolü data kısmında nasıl çözebilirim eğer database kısmında çözümü yoksa bunu delphi tarafında nasıl çözebilirim. Şunu da belirtmek istiyorum ki data ya büyük harfe çevirerek kayıt yaptırmak istemiyorum. Eğer data da ÇAY olarak kayıt varsa çay olarak giriş yapılmaya çalıştığımda uyarı vermesini istiyorum. Mysql ve mssql de bu sorun yok sorunsuz çalışıyor fakat benim firebird tarafında bunu çözmem gerekiyor. Konu hakkında yardımlarınız için şimdiden teşekkür ederim.
Cevapla
#2
(06-03-2017, Saat: 22:30)quake16 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba

Firebird 2.5 veri tabanında index tanımlayarak mükerrer kayıt kontrolü yaptırmak istiyorum. Fakat Ğ.İ.Ö.Ş.Ü.Ç harflerinde büyük ve küçük farklılıkla yazıldığında index alanı kaydı yokmuş gibi kabul edip kayıt işlemini gerçekleştiriyor örnek (ÇAY kaydı varken çay yazında bu kaydı kabul ediyor. Wın1254 ve TURKISH_CHARSET olarak tanımlı database firebird kısmında. Bu kontrolü data kısmında nasıl çözebilirim eğer database kısmında çözümü yoksa bunu delphi tarafında nasıl çözebilirim. Şunu da belirtmek istiyorum ki data ya büyük harfe çevirerek kayıt yaptırmak istemiyorum. Eğer data da ÇAY olarak kayıt varsa çay olarak giriş yapılmaya çalıştığımda uyarı vermesini istiyorum. Mysql ve mssql de bu sorun yok sorunsuz çalışıyor fakat benim firebird tarafında bunu çözmem gerekiyor. Konu hakkında yardımlarınız için şimdiden teşekkür ederim.


create unique index adi_unq_idx on ogrenci computed by (lower(ogrenci_adi));


Örnek ogrenci tablosunda ogrenci_adi alani tanımlanmıştır.
ALİ
ali
izin vermez
--
ÇAY
çay
çAy
izin vermez.

“Do. Or do not. There is no try.”
Cevapla
#3
Quake16, Mesajı yanlış yere açmışsın. Firebird bölümünde açman daha doğru olurdu. Index olarak @masteryoda'nın dediği şekilde de yapabilirsin, kendin kod tarafında kayıt yapmadan önce de kontrol edebilirsin. İşi veritabanına bırakırsan kayıt sırasında programın kontrolü dışında hata mesajları çıkabilir, try-catch kullanman gerekebilir.
Ben kod tarafında kendi kontrollerini kendinin yapmanı tavsiye ederim. Artılarını ve eksilerini ancak sen kendin deneyerek çözebilirsin diye düşünüyorum.

E.O.F.  (End Of Fun )
Rolleyes
Cevapla
#4
Merhaba

Yardımlarınız için teşekkür ederim data kısmında olan problemimi verdiğiniz kodla çözülmüş oldu.
Cevapla
#5
(07-03-2017, Saat: 17:33)quake16 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba

Yardımlarınız için teşekkür ederim data kısmında olan problemimi verdiğiniz kodla çözülmüş oldu.

client tarafında da aynı kontrolü yapmanız daha iyi olacaktır sonuçta aynı kayıt varsa daha anlamlı bir mesajla kullanıcıya bildirim verebilirsiniz.

localete ile veya ayrı bir query ile aynı kayıt varmı diye kontrol edeblirsiniz
sql ile kontrol için index ile aynı mantıkta buraya bakabilirsiniz Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol

“Do. Or do not. There is no try.”
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  firebird hakkında serhat 24 564 20-04-2018, Saat: 16:11
Son Yorum: boreas
Question Query Plan Index Sorunu Cyber 2 103 12-04-2018, Saat: 16:37
Son Yorum: Cyber
  Yeni Başlayanlar İçin Firebird Kurulumu ve Delphi FireDAC Ayarları DelphiCanR 11 1.333 22-02-2018, Saat: 12:40
Son Yorum: Ugur
  Firebird Uzak veritabanı yedekleme masteryoda 9 1.147 26-01-2018, Saat: 17:47
Son Yorum: rmzgenius
  Firebird -arithmetic exception, numeric overflow masteryoda 11 1.282 26-01-2018, Saat: 17:39
Son Yorum: rmzgenius



Konuyu Okuyanlar: 1 Ziyaretçi