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ı: 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.


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ı: Merhaba

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 https://firebirdsql.org/refdocs/langrefu...upper.html

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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  pardusda dbeaver ıle fırebırd kullanımı hakkında sadikacar60 8 605 29-02-2024, Saat: 17:50
Son Yorum: Hayati
  Firebird Sound_ex Kodu. COMMANDX 1 303 28-01-2024, Saat: 01:56
Son Yorum: maydin60
  Firebird ile FIFO Hesaplama Nasıl yapılır? klavye 0 356 17-08-2023, Saat: 12:33
Son Yorum: klavye
  IBExpert ile Firebird Veri Kurtarma DelphiCanR 6 7.502 19-07-2023, Saat: 14:42
Son Yorum: baloglurecep
  Firebird Bozuk Dosya Hk. dark12side 1 394 07-06-2023, Saat: 21:53
Son Yorum: mrmarman



Konuyu Okuyanlar: 1 Ziyaretçi