15-03-2017, Saat: 01:03
Şimdi Table Flag ile neyi kastettim öncelikle ondan bahsetmek istiyorum. Normal şartlarda bizim bir veri tablosundan beklentimiz, biz değiştirelim,silelim,ekleyelim ama kaydetmesin, biz kaydet dediğinde kaydetsindir. Fakat bir Dataset kullandığımız zaman bu işlemleri yapmak direkt veritabanı nı etkilemektedir. Bu yüzden de bunlar için Dataset imize bayraklar ekleyerek ilgili kaydın durumunu kontrol altında tutabiliriz. Bunu aşağıdaki örnekte Delete işlemi için yaptım. Biraz daha ilerisini düşündüğümüzde, yapılacak şey ise ana verinin kopyasını alıp bu kopya üzerinde işlemler yaptıktan sonra Flag'lere bağlı olarak asıl veriyi güncelleme işlemidir.
Örnekte sadece Delete Flag ı attırıyorum fakat herhangi bir silme işlemi yaptırmıyorum. Sadece örnek olması açısından bu şekilde yaptım. Bu düşünce tarzı ile Listview'e yüklenen verilerde de Listview datasına ilgili kaydın Flaglerini ekleyebilir, işlemler yaptırabiliriz.
Örnekte DEL tuşu Delete Flagı atmaktadır. Tekrar DEL tuşuna basarak ilgili Flag i geri alıyorum. Flag koyma kolonunu eklemek için Clientdataset bileşenine benim veritabanımda olmayan DELETED adında bir kolon ekliyorum. Bu kolonun tipi Calculated. Aynısı ADOQuery içinde geçerli. Bu kolonu Flag kolonu olarak kullanıyorum. Eğer DEL tuşuna basarsam bu kolonuda 1 olarak güncelliyorum. Tabiki bu kolon veritabanımda olmadığı için bir sıkıntı yaratmıyor. Basit mantık bu şekilde.
Biraz üzerinde çalışıldıktan sonra eminim güzel bir bileşen veya class haline getirebilirsiniz.
Kaynak kod:
Buradan kaynak kodları indirebilirsiniz | Yandex Disk
Örnekte sadece Delete Flag ı attırıyorum fakat herhangi bir silme işlemi yaptırmıyorum. Sadece örnek olması açısından bu şekilde yaptım. Bu düşünce tarzı ile Listview'e yüklenen verilerde de Listview datasına ilgili kaydın Flaglerini ekleyebilir, işlemler yaptırabiliriz.
Örnekte DEL tuşu Delete Flagı atmaktadır. Tekrar DEL tuşuna basarak ilgili Flag i geri alıyorum. Flag koyma kolonunu eklemek için Clientdataset bileşenine benim veritabanımda olmayan DELETED adında bir kolon ekliyorum. Bu kolonun tipi Calculated. Aynısı ADOQuery içinde geçerli. Bu kolonu Flag kolonu olarak kullanıyorum. Eğer DEL tuşuna basarsam bu kolonuda 1 olarak güncelliyorum. Tabiki bu kolon veritabanımda olmadığı için bir sıkıntı yaratmıyor. Basit mantık bu şekilde.
Biraz üzerinde çalışıldıktan sonra eminim güzel bir bileşen veya class haline getirebilirsiniz.
Kaynak kod:
Buradan kaynak kodları indirebilirsiniz | Yandex Disk