Delphide trigger sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Delphide trigger sorunu
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?
"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?
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 hocammussimsek 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.

viewtopic.php?t=672&highlight=ado+primary
tamam buldum o mesajı : viewtopic.php?t=346
Primary key yoksa bir tane autoinc alan ekle ve onu P.K. yap.
Kolay gelsin.
Primary key yoksa bir tane autoinc alan ekle ve onu P.K. yap.
Kolay gelsin.
Triggerı olabileceği en basit hale getirdim:
Artı verdiğiniz kodu kullandım:
Ama hala omadı

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
Kod: Tümünü seç
Uses AdoInt;
..
ADODataSet1.Properties['Update Criteria'].value :=adCriteriaKey;
Ama hala omadı


Triggerın içinde şunu kullanınca kalkıyor hata:
Kod: Tümünü seç
Set Nocount On
... -- işlemler
Set Nocount Off