Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
[ÇÖZÜLDÜ] Anahtar sütun bilgileri yetersiz veya yanlış hatası
#1
Merhaba arkadaşlar,

DBGo Bileşenlerinden ADOConnection, ADODAtaset ve ADOQuery bileşenleri ile ODBC üzerinden firebird veritabanı ile iletişim kuruyorum.
Normal şartlarda herhangi bir problem yaşamıyordum. Ama şimdi fiyat güncellemesi için bir ekran yapıyorum, bir kayıt güncelleyince sıkıntı yok. Ama ikinci kayda geçip güncelleme yapınca "Anahtar sütun bilgileri yetersiz veya yanlış. Güncelleştirme çok fazla satırı etkiledi." şeklinde bir hata veriyor. Tekrar denersem de "Satır güncelleştirme için bulunamıyor. Son okunduğundan bu yana bazı değerler değiştirilmiş olabilir." diyor. 

Internet'te biraz arama yaptım. Aşağıdaki şekilde ayarlamamı söylüyorlar ama hepsi şu anda öyle zaten.
ADODataset'in 
CursorLocation özelliği  useCLient olarak ayarlı
CursorType özelliği ctKeySet olarak ayarlı
LockType özelliği de  ltOptimistic olarak ayarlı.

Veritabanında güncelleme yaptığım tabloda Primary Key mevcut. Trigger vb. şeyler de yok.

Bu hatalar ile karşılaşan var mı? Nasıl aşabilirim bu problemi?
Cevapla
#2
Muhtemelen dbgrid üzerinden veri girişi yapıyorsunuz. Bu şekilde kayıt girişini zaten önermem ama yine de çözüm odaklı cevap yazayım.

Veritabanından select ile liste alırken iki tane aynı satırdan sonuç verecek kayıt varsa onu bir diğerinden ayırt edecek alanı da select sayırına ekleyin. Primary key alanı muhtemelen autoinc bir alandır, bu farklılaşma için biçilmiş kaftandır.

Yeni kayıt eklenince bu field benzersiz bir rakam üretecektir. Dolayısıyla sorun çözülecektir.

Bu alan görüntü kirliliği yapıyor derseniz onun da çözümü var. Bu autoinc alanı select satırında en sona koyun, active eder etmez bunu dbgridde gizleyin. Kullanıcı göremeze ama o arkada vardır.
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#3
Merhabalar üstadım,

Evet DBGrid kullanıyorum, tahmininiz doğru. Ama yeni kayıt eklemek için değil, var olan kayıtları listelemek ve üzerinde değişiklik yapmak için.
Yine de sizin dediğiniz gibi SQL cümleme PK alanını da ekleyince problem düzeldi.

Çok teşekkür ederim.
Saygılarımla.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Logo Go3 de döviz tablosunda Date_ alanına veri (Çözüldü) yazma cinarbil 4 194 19-04-2024, Saat: 08:25
Son Yorum: cinarbil
  AdoQuery ile ilgili bir sorun. (Çözüldü) Bay_Y 4 199 17-04-2024, Saat: 10:58
Son Yorum: Bay_Y
  Fastreport İçindekiler Sayfası Oluşturma [ÇÖZÜLDÜ] bydelphi 1 258 18-03-2024, Saat: 12:11
Son Yorum: bydelphi
  Xmlmapper hatası hbulus 1 163 07-03-2024, Saat: 09:45
Son Yorum: RAD Coder
  UrlDownloadFile Hatası mcuyan 7 808 18-02-2024, Saat: 23:06
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi