gerçekten kayıt silme nasıl olur._?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
M_D_5
Üye
Mesajlar: 39
Kayıt: 06 Nis 2006 01:53

gerçekten kayıt silme nasıl olur._?

Mesaj gönderen M_D_5 »

S.a arkadaşlar bir yerde okudum...diyorki table1.delete metodunu kullanarak veritabanından veriyi gerçek manada silemezsiniz diyor...
Gerçek manada silmek için şu kodu vermiş ben tam anlamadım..

Resim

Yani diyordiki okudugum yazıda siz table1.delete yönteminide kullansanız gerçek manada o kaydı silmez...Onun için bu resimdeki şekilde kullanın...kafam karıştı yardımlarınız bekliyorum ...
Php & Delphi Coder
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

Silmeden kasıt zaten kayıta silindiğini belli eden bir işaret konmasından başka bir şey değildir. Resimde verilende de paradoks tablolarındaki silinen kayıtların temizlenmesi operasyonudur. Herhangi bir veri tabanında silinen kayıtlara özel programlarla ulaşmak mümkün olabiliyor.
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
M_D_5
Üye
Mesajlar: 39
Kayıt: 06 Nis 2006 01:53

Mesaj gönderen M_D_5 »

peki hocam sadece table1.delete metodunu kullanarak kayıtları temizleyebilirmiyiz?
Basit anlamda...Ben proje ödev olarak sunacamda....Yani silmeme..vs gibi problem yaratırmı?
Php & Delphi Coder
Kullanıcı avatarı
mikser
Üye
Mesajlar: 120
Kayıt: 30 Haz 2003 09:54
Konum: Ankara

Mesaj gönderen mikser »

delete metoduyla kayıt silebilirsiniz. 10 kaydınız oldun.. kayıtları listelediniz. gelen kayıt sayısı 10. sonra gidip 3 kayıt sildiniz.. tekrar listelediğinizde 7 kayıt gelir.
ancak gercekte kayıt dosyadan silinmemiştir. rsimsek inde de dediği gibi sadece kayıt işareti değişmiştir.

10 kayıt girildiğinde diyelim ki dosya boyu 100 kb olsun... 3 kayıt sildiğinizde normalde 70 kb ye düşmesi beklenir... ancak kayıtlar gercekten silinmediği için dosya boyu yine 100 kb kalır.

Verdiğiniz kodu uyguladığınızda dosya boyu 70 kb ye düşer... yani silinen kayıtlar gercekten silinir. (table pack işlemi).
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Bir ekleme de benden olsun, tabloya bir kayıt ekleniren silinmiş kayıt varsa üzerine yazar ve silindi işareti kaldırılır. Böylelikle dosya boyutu sürekli bir azalıp bir artmaz. 10 kayıt 100 KB örneği güzel. 3 kayıt silinince dosya boyutu 70 KB'a düşmez 100 KB'ta sabit kalır. Tekrar 3 kayıt eklendiğinde ise dosya boyutu hala 100 KB'ta olacaktır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

anladığım kadarıyla
kayıt silindiğinde gerçek anlamda silinmiyor ve kullanılmamak üzere işaretleniyor;

peki kayıt güncellendiğinde nasıl oluyor bilgisi olan varmı.. yani eski kaydın üzerine gidilip değişikliklermi yapılıyor; yoksa eski kayıt silinmiş gibi işaretlenip yeni bir kayıtmı ekleniyor..
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

selimr yazdı:anladığım kadarıyla
kayıt silindiğinde gerçek anlamda silinmiyor ve kullanılmamak üzere işaretleniyor;

peki kayıt güncellendiğinde nasıl oluyor bilgisi olan varmı.. yani eski kaydın üzerine gidilip değişikliklermi yapılıyor; yoksa eski kayıt silinmiş gibi işaretlenip yeni bir kayıtmı ekleniyor..
Sizce?
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

silme mantığı eğer işaretleme yoluyla yapılıyorsa bence değiştirmede aynı mantıkla yapılıyordur diye düşünüyorum.. yani eski kayıt işaretlenip yeni kayıt ekleniyor..

tabi bence, bildiğimden değil...
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

şimdi aklıma bişey geldi...

eğer güncellemelerde old value ve new value diye kullanım imkanımız varsa ozaman kesin kayıt üzerinde değişiklik yapmıyor ve silinmiş gibi işaretleyip yeni kayıtlar ekliyor(mu) :)
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

sabanakman yazdı:Bir ekleme de benden olsun, tabloya bir kayıt ekleniren silinmiş kayıt varsa üzerine yazar ve silindi işareti kaldırılır. Böylelikle dosya boyutu sürekli bir azalıp bir artmaz. 10 kayıt 100 KB örneği güzel. 3 kayıt silinince dosya boyutu 70 KB'a düşmez 100 KB'ta sabit kalır. Tekrar 3 kayıt eklendiğinde ise dosya boyutu hala 100 KB'ta olacaktır.
Mantık olarak siz tasarlasaydınız ne yapardınz. Orada hali hazırda var olan bilgi ne diye gereksiz yere disk üzerinde yer işgal etsinki. Kaydın üstüne yazılması doğru olanıdır ve öylede yapıyor. Çünkü bu çok gereksiz bir hamle olur. Mantık yürütmek gerekirse işlevi olmayan o işaretlenen kayıtlar hem hızı etkileyecek hemde yer kaplayacak. Burada silinen kaydı işaretlemek sadece dosya boyutu değiştirme operasyonu çok miktarda iş gerektirmektedir. Hele kayıt sayısı çok ve indeksler varsa. Silinen kaydı işaretlemenin mantığı sadece bu iş yüküne girilmeden çözüm üretilmiş olmasıdır. Üstelik yukarıda yeni eklenen kayıtlarda bu silinen kayıtların üzerine yazılıyor demiştim. Neyse cevap aceleye geldi diyelim. :wink: Bu old ve new value değerleri tamamen delphi tarafında organize edilen bir yöntemdir. VCL bu değerleri ayrı ayrı elde edebilmek adına bu özellikleri barındırmaktadır.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Kullanıcı avatarı
selimr
Üye
Mesajlar: 556
Kayıt: 16 Eki 2003 02:07

Mesaj gönderen selimr »

sevgili sabanakman söylediğin mantıklı olabilirde benim çelişkiye düştüğüm nokta şurası..


veritabanınından birmiktar kayıt siliniyor ve bu işlemden sonra işlem yükü fazla olmasın diye ( yani dosya boyutu değişikliğindeki ek yükler) bu kayıtlar işeretliniyor..

daha sonra yeni kayıtlar eklenirken bu işaretli bölümlere yazılıyor diyorsun...


rsimsek hocamız demişki
"Herhangi bir veri tabanında silinen kayıtlara özel programlarla ulaşmak mümkün olabiliyor."

bu durumda özel programlarla silinen verilere ulaşmak imkanı ortadan kalkmış olmuyormu..
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Mesaj gönderen sabanakman »

Veri tabanları arası farklılıklar olabilir ama paradox için silinen her kayda erişmen garanti olmayabilir.
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla