SQL serverda update trigger sorunu !!!

MS SQL Server veritabanı ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

SQL serverda update trigger sorunu !!!

Mesaj gönderen bilbeyi »

Merhabalar.
sql server üzerinde bir update triggerı yazdım. Trigger istediğim şekilde update işlemini yapıyor ancak update sonucunda birden fazla kayıttın değiştiği için bana hata mesajı veriyor. bu hata mesejını sadece delphi tarafında görüyorum. query analyzer ekranında bir update işlemi yaptığımda hiç bir hata mesajı vermiyor.
Update triggerın verdiği hata mesajını nasıl engelliyebilirim ?
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Bu tür durmalrda lütfen hata mesajının kendisini de yazın.

Eğer aldığınız hata mesajı
"Row Cannot be located for updating. Some values may have been changed since it was last read"
ise cevabı: :ara

viewtopic.php?t=8047&highlight=trigger
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

Key column information is insufficient or incorrect.
Too many rows were affected by update
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Ado mu kullanıyorsunuz?
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

evet ADO
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

Triggerın içinde yapılan update işlemini bir procedure haline getirdim.
Update Triggerında bunu çağırıyorum. Sorunumu bu şekilde çözebildim ama daha mantıklı çözümleri sizden bekliyorum
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

Özür dilerim arkadaşlar. bir önceki mesajımda yazdıklarım doğru değilmiş.
programı exeden denediğim için hata mesajını göremedim. Delphiden çalıştırınca hatayı tekrar aldım. Sorun devam ediyor trigger içinde procedure çağırmakta çözüm olmadı
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Fazla vaktim yok, izah etmek için.

Trigger'ın ilk satırına,

SET NOCOUNT ON

yaz. Sorununun düzelmesi gerekiyor.
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
radiochaos
Üye
Mesajlar: 17
Kayıt: 10 Kas 2005 05:15
Konum: Antalya
İletişim:

Mesaj gönderen radiochaos »

Sanki primary key yok yada primary key e göre update yapılmıyo diye böyle bir mesaj geliyor :?
Hakan Can
Üye
Mesajlar: 634
Kayıt: 04 Mar 2005 04:27
Konum: Ankara

Mesaj gönderen Hakan Can »

Trigger'in veya procedure'ün kendisini de belirtir misiniz?
bilbeyi
Üye
Mesajlar: 104
Kayıt: 24 Kas 2004 10:48
Konum: ist

Mesaj gönderen bilbeyi »

cevaplar için tşkler.
SET NOCOUNT ON yazınca sorunumu çözdüm
Kullanıcı avatarı
Kuri_YJ
Moderator
Mesajlar: 2248
Kayıt: 06 Ağu 2003 12:07
Konum: İstanbul
İletişim:

Mesaj gönderen Kuri_YJ »

Selamlar,

Aslında bu sorun, Hata olarak dönmüyor. Ado Update'i yaptıysanız bundan kaynaklanmaktadır. Eğer bir trigger içinde birden fazla satırı UPDATE ediyorsanız, M$-SQL Server birden fazla kayıt UPDATE edildi diye, bir warning oluşturuyor. Bu warning, eski ADO versiyonlarında dikkate Alınmazdı . Ancak Son Ado geliştirmelerinde bu konuyu dikkate almaya başlamışlar ve bu Uyarıyı EXCEPTION oluşturuyor.

Bu sorun biz ADO güncellemesi yaptıktan sonra başımıza geldi.

Kolay Gelsin
Kuri Yalnız Jedi
Harbi Özgürlük İçin Pisi http://www.pisilinux.org/
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

bilbeyi yazdı:cevaplar için tşkler.
SET NOCOUNT ON yazınca sorunumu çözdüm
sorunun hemen altındaki linki incelemiş olsaydın 2 gün önce çözmüş olacaktın aslında.
Cevapla