triger hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
btlbetul
Üye
Mesajlar: 18
Kayıt: 05 Oca 2009 01:18

triger hatası

Mesaj gönderen btlbetul »

Herkese merhaba,

"can't update table in stored function trigger because it is already used by statement which invoked this stored function trigger. " bir prosedür oluşturdum kayıttaki bir alanı 1 olarak update ediyor bu prosedürü trigerla tetikledim ama kaydı update ederken bu hatayı veriyor...

:roll: Çözümü bilen, duyan, gören var mıdır bi soriim dedim...
btlbetul
Üye
Mesajlar: 18
Kayıt: 05 Oca 2009 01:18

Re: triger hatası

Mesaj gönderen btlbetul »

acaba tablo kendinimi tetikleyemiyor mesela kayıt değişince bu kayıt değiştirildiğini belirtmek üzere degisim kolonunu 0 ken 1 yapıyorum
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Re: triger hatası

Mesaj gönderen conari »

Triggerlar kendini tetiklemez.
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
btlbetul
Üye
Mesajlar: 18
Kayıt: 05 Oca 2009 01:18

Re: triger hatası

Mesaj gönderen btlbetul »

ama orda sonsuz döngüye giriyor anladığım kadarıyla düşününce kayıt update olunca program tarafından bide triger tetiklenip yine bi update çalışıyo tabi kafası karışıyor haliyle

:N( neyse trigerla değilde iyisi mi ben kodla çözeyim bunu...

ama yinede çözümü bilen varsa söylerse çok memnun olurum
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: triger hatası

Mesaj gönderen aslangeri »

s.a.
hangi veritabanını kullanıyorsunuz belirtmemişsiniz (yada ben göremedim)
eğer fb kullanıyorsanız hangi trigeri kullanıyorsunu.
beforeinsert?
afterinsert?
belkide new ve old cursorları işinizi görür.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: triger hatası

Mesaj gönderen emin_as »

Sanırım table in degişikliği durumunda çalışması gereken trigger yazmışsınız, fakat bu trigger da aynı table i degiştiriyor, sonra table değişince trigger yine çagrılacak, sonra trigger table degiştirecek vs vs . Sonsuz bir döngü gibi bir duruma neden olabileceği için firebird bu duruma izin vermiyor.

Anlatımda karışıklık olmasın diye ekleme yapıyorum:

Bir trigger ile kendi tablei degiştirebilirsin, ama kendini çagıracak şekilde düzenleme yapamazsın.

Triggeri update için yazdın diyeiim, trigger için update aynitable .... şeklinde sql kullanmazsın. Onun yerine dogrudan fieldları degişirirsin. fieldsehir = 'ANKARA' gibi. Eğer önceki bilgilerle karşılaştırma yapman gerekirse, old ve new u kullanırsın. Trigger içinde aynı table için update veya insert komutlarını kullanamazsın.
btlbetul
Üye
Mesajlar: 18
Kayıt: 05 Oca 2009 01:18

Re: triger hatası

Mesaj gönderen btlbetul »

a.s .
cevaplarınız için teşekkür ederim :bravo:

aslangeri arkadaşım valla doğru söylüyosun sorumda hiç belirtmemişim sanki herke biliyor bütün gece bunla uğraştığımı :D mysql 5.1 veritabanı kodda after update inde çalışacaktı

emin_as arkadaşım "Triggeri update için yazdın diyeiim, trigger için update aynitable .... şeklinde sql kullanmazsın. Onun yerine dogrudan fieldları degişirirsin. fieldsehir = 'ANKARA' gibi. Eğer önceki bilgilerle karşılaştırma yapman gerekirse, old ve new u kullanırsın. Trigger içinde aynı table için update veya insert komutlarını kullanamazsın." demişsin benimde yaptığım aynı table için update ti

kodla hallettim neyseki query nin before post olayında guncelleme alanını 1 yap dedim çalıştı ama mantıklı mı tartışılır :N(
Cevapla