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
  matematiksel karşılaştırma hatası nevzatc 7 533 14-04-2026, Saat: 06:36
Son Yorum: emailx45
  SQL Table Type parametre gecisi hakkında (Çözüldü) adelphiforumz 1 218 09-04-2026, Saat: 15:53
Son Yorum: adelphiforumz
  Delphi ile SQL server bağlantı hatası yakalama Under 20 2.049 21-11-2025, Saat: 15:24
Son Yorum: mrmarman
  Delphi Memo bilgileri MS-Word aktarmak Metin 2 818 03-08-2025, Saat: 17:33
Son Yorum: Metin
  OpenSSL Hatası mcuyan 1 503 29-04-2025, Saat: 02:28
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi