Delphide trigger sorunu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Delphide trigger sorunu

Mesaj gönderen naile »

ms sql server kullanıyorum. Yazdığım bir tregger başka bir tabloda birden fazla satırı siliyor ve birden fazla satır ekliyor. sql server tarafında bir sorun yok. Ordan triggerı tetikleyici bir işlem yaptığımda hata vermeden düzgün çalııyor ama delphi tarafında yaptığımda aynı işlemi şu hatayı veriyor:

"Row Cannot be located for updating. Some values may have been changed since it was last read"

diyor. Diyor ama yine de yaptığım işlemi formu kapatıp açtığımda bir bakıyorum ki yapmış. Birden fazla satırı etkilediği için sanırım bu hatayı veriyor, delphi kabul etmiyor ama yani bunun bir çaresi derdi devası yok mudur?
fduman
Moderator
Mesajlar: 2749
Kayıt: 17 Ara 2004 12:02
Konum: Ankara

Mesaj gönderen fduman »

Bileşenlerden biri senin trigger tarafında sildiğin kayda ulaşmaya çalışıyor ancak ulaşamıyor ve bu hatayı veriyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

ADO kullanıyorsan eğer ADO SQL cümlesini geçerken tüm alanları kullanıyor. Sadece primary key'leri kullanması için bir kod vardı. Forumda vermiştim sanırım, ipuçlarında da olması lazım.

Ayrıca Primary key yoksa, mutlaka ekle.

Kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

mussimsek yazdı:ADO kullanıyorsan eğer ADO SQL cümlesini geçerken tüm alanları kullanıyor. Sadece primary key'leri kullanması için bir kod vardı. Forumda vermiştim sanırım, ipuçlarında da olması lazım.

Ayrıca Primary key yoksa, mutlaka ekle.

Kolay gelsin.
Triggerın olduğu tablomda primary key alanım var, zaten bu alanı kullanıyorum. Ama silme ve yazma yaptığım diğer tabloda primary key yok. Biraz aratma yaptım şu başlığı bulabildim başka da işime yarar bişey bulamadım hocam :oops: napmam lazım?
viewtopic.php?t=672&highlight=ado+primary
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

tamam buldum o mesajı : viewtopic.php?t=346

Primary key yoksa bir tane autoinc alan ekle ve onu P.K. yap.

Kolay gelsin.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Triggerı olabileceği en basit hale getirdim:

Kod: Tümünü seç


CREATE  TRIGGER [TUrun_Grups] ON [dbo].[Gns_UrnSubGrup] 
AFTER DELETE 
AS
BEGIN
  DECLARE @GrpID INT
  SET @GrpID = (Select GrpID From deleted)
  IF (@GrpID IS NOT NULL)
  	DELETE FROM GN_GrupUrunID WHERE GrupID = @GrpID
END

Artı verdiğiniz kodu kullandım:

Kod: Tümünü seç

Uses AdoInt;
..
ADODataSet1.Properties['Update Criteria'].value :=adCriteriaKey; 

Ama hala omadı :duvar: :duvar:
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Bir de tabi primary key de yaptım :(
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Triggerın içinde şunu kullanınca kalkıyor hata:

Kod: Tümünü seç

Set Nocount On
... -- işlemler
Set Nocount Off
Cevapla