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..
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 ...
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.
peki hocam sadece table1.delete metodunu kullanarak kayıtları temizleyebilirmiyiz?
Basit anlamda...Ben proje ödev olarak sunacamda....Yani silmeme..vs gibi problem yaratırmı?
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).
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. - .
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..
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. - .
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..
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)
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. 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. - .
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..