Cari Tablonun alt kayıtlarınında beraberinde silinmesi..

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
Biltes
Üye
Mesajlar: 361
Kayıt: 11 Oca 2005 02:24
Konum: Edirne

Cari Tablonun alt kayıtlarınında beraberinde silinmesi..

Mesaj gönderen Biltes »

Arkadaşlar Merhaba;
Cari Tablom var ve burda müşterilerimin kayıtlarını tutuyorum. Aynı formdan bağlı olduğu query ile arama yaptığım için silme işlemi için ayrı bir query ekledim ve silme işlemini onun üzerinde yapıyorum. Silme işlemini yaptığım kod;

Kod: Tümünü seç

    Begin
      query1.params.parambyname('ID').asinteger:=ctable.fieldbyname('id').asinteger;
      query1.execsql;
      ctable.Close;
      ctable.Open;
    End;
Sorun şu cari kayıt'tan kişiyi silince ona bağlı olan cari hareketler tablosundan kişinin hareketlerini de silmek.
Bu konuda yardımcı olan herkese şimdiden çok teşekkür ediyorum....
Çalışmalarınızda başarılar dilerim...
Var olmaya değer her şey bilinmeye de değerdir. Çünkü bilgi varlığın bir imgesidir. Onda iyi ve kötü aynı anda bulunmaktadır...
Kullanıcı avatarı
selman
Üye
Mesajlar: 664
Kayıt: 04 Ara 2003 12:06
Konum: İzmir

Mesaj gönderen selman »

eğer Veritabanı firebird kullanıyorsan Fk olayı ile çok rahat bir şekilde yapabilirsin bu olayı
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

merhaba selman kardeşin dediği gibi firebird kullanırsan carikart ilişki alanı PK(PrimaryKey) detail tablo ilişki alanını FK (Foreign Key) tanımlarında Delete bölümüne cascade değerini aktarırsan master tablodaki kayıt silindiğinde detail tabloda otomatik siliniyor. ancak Foreign Key tanımlamaz isen silme işlemi cari kartta olacağı için carikodu alanını değişken olarak biryerde tut ve detail tabloda ilişkiyi bu alan sağladığı için silme sorgusuna delete from detail where carikodu + değişken ile carikodu yani eğer ilişki alanı bu ise detail tablodaki bütün ortak alanlar aynı olacaktır. dolasıyla sadece ortak alanı silinecek carikodu alanından alacağın değişkenle olacaktır. kolay gelsin
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
snofru
Üye
Mesajlar: 204
Kayıt: 19 Ağu 2004 02:57
Konum: /local/usr/src
İletişim:

Mesaj gönderen snofru »

Benimde önerşim trigger... Ana tablonun Delete Trigger yordamına;

Kod: Tümünü seç

Delete From AltTablonNeyse
Where BAG_ID = Old.ID
Ben burada Master Detail ilişki gibi düşünerek ID <-> BAG_ID olayını benzettim, sen Stok koduna göre de silebilirsin.

Bilmiyorum, fikrin olsun, ufkun açılsın vs...

Kolay gelsin
Cevapla