Merhaba
Ben profesyonel bir programci degilim. Is yerimde kullanmak uzere amator olarak vt uygulamasi (firebird 2.0)gelistirmeye calisiyorum. Benim sorum indexlerle alakali.
Ornek olarak soyle anlatayim.
Musterilerimle alakali bilgileri tuttugum veritabaninda ki kayitlar sehir alanina gore indexlenmis (unique degil) Ben bu tabloya veri girdigimde kayit tabloda index kriterlerine uymayan herhangi bir yere yaziliyor (Bunu dbgridde boyle goruyorum) (Sanirim paradoxta kayit girildekten sonra siralama otomatik olarak kendiliginden indexe gore oluyordu.) Programi ancak tamamen kapatip yeniden actigimda ise tablonun sehir alanina gore siralanmis oldugunu gorebiliyorum. Bunu veriyi tabloya yazdigim anda yani bir ac-kapa yapmadan saglayabilirmiyim () Events procedure kullanarak denedim ( AfterInsert, vs) gene olmadi.
Ama ikinci kez acip kapadigimda siralanmis olarak gorsemde kayitlari sanirim tabloda fiziki bir siralama gene yok. Cunku IBExpertten tabloyu kontrol ettigimde girdigim kaydin tablonun en altina yazildigini goruyorum. Tabloyu ancak ibexpertten manuel olarak siralayabiliyorum.
Sonuc olarak runtime da bir kayit girdigimde tablomun programi acip kapatmaya gerek kalmadan gercek anlamda tanimli indexe gore fiziksel bir sirlanis icerisinde olmasini saglayabilirim.
Siralama sorunu
Böyşe birşeye neden ihtiyaç duyuyorsunuz anlamadım. Zaten indexler kayıtlara hızlı ulaşılmasını sağlar ve sıralanmasını hızlandırır. Kayıtları çekerken order by ile sıralayarak çekin. Kayıt yaptıktan sonra tabloyu refresh etmeniz gerekir. Eklenen kayıt sona eklenir bundan daha doğal bişi olamaz. O kadar kaydı kaydırıp en sona eklemek pek mantıklı değil. Gereksiz işlem kaybı olur.
Eğer tabloyu refresh yapmak istemiyorsanız şunu yapın.
Kaydı kaydetmeden önce locate komutu ile tabloda kaydı eklemen gereken ili içeren bir kaydın üzerine gel. Append yerine Insert kullanarak kaydı araya girebilirsin.
Eğer tabloyu refresh yapmak istemiyorsanız şunu yapın.
Kaydı kaydetmeden önce locate komutu ile tabloda kaydı eklemen gereken ili içeren bir kaydın üzerine gel. Append yerine Insert kullanarak kaydı araya girebilirsin.