SELECT
    BORDRONO,
    VERBORDRONO,....
FROM
    CEKHAREKET order by portfoyno 

 
DELETE FROM
    CEKHAREKET
WHERE
        AUTOSAYI = :OLD_AUTOSAYI
 
yukarıdaki durumda değiştirme yapınca
 
 pfIBDataSet5.Close;
 pfIBDataSet5.SELECTSQL.Clear;
 pfIBDataSet5.SELECTSQL.Add('select * from cekhareket Where portfoyno = ' + pfIBDataSet2portfoyno.Text+'and autosayi<>'+pfIBDataSet2autosayi.text);
 pfIBDataSet5.open;
 pfIBDataSet5.first;
 
 pFIBDataSet5.Edit;
 pfIBDataSet5POZISYONU.Text:=copy(pfIBDataSet5Pozisyonu.Text,2,length(pfIBDataSet5Pozisyonu.Text)-1);
 pFIBDataSet5.Post;

tamam oluyor.
 
Fakat kırmızıdaki auto sayı yerine portfoyno yazınca olmuyor. Yaniaynı portföy no olan iki kayıt da değişip aynı oluyor.

Projelerimde kullandığım master detail tablolarda bir problem yaşıyordum. Elhemdü lillah, Allahın izni ve yardımı ile o meseleyi çözdüm.

Nasıl mı ? 

Detail tabloların sql işlemlerindeki refresh, delete, modify gibi işlemlerde anahtar alan olarak detail tablonun foreing key alanını kullanmamak gerekiyormuş. Onun yerine autosayi alanını kullanınca detaildeki kayıtları mükekerrer yapma olayından kurtuldum elhemdülillah. 




Master tabloda ise anahtar alan olarak primerkeyi kullanmakta sakınca görmedim.
Ayrıca bütün tablolarımda anahtar=* olarak bir alan tanımladım bunun tablodaki anahtar alanla sadece isim benzerliği var.


Allaha Emanet Olalım.

Okul Zil Programı

yilsoftzil

9786059223690
logo5

Esma-ül Hüsna

Ziyaretçi İstatistikleri

Bugün176
Dün366
Bu hafta1753
Bu ay7262
Hepsi810480