Bahçeşehirimkb Forum Sitesi
Bahçeşehirimkb Forum Sitesi
Bahçeşehirimkb Forum Sitesi
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Bahçeşehirimkb Forum Sitesi

SİTEMİZE HOŞGELDİNİZ
 
GiRİŞGiRİŞ  AnasayfaAnasayfa  Latest imagesLatest images  Kayıt OlKayıt Ol  Giriş yapGiriş yap  

 

 Tablo Kayıtlarını İsteğe Uygun Dizmek

Aşağa gitmek 
YazarMesaj
suskungeceler
Admin
Admin
suskungeceler



Tablo Kayıtlarını İsteğe Uygun Dizmek Empty
MesajKonu: Tablo Kayıtlarını İsteğe Uygun Dizmek   Tablo Kayıtlarını İsteğe Uygun Dizmek Icon_minitimeC.tesi Eyl. 18, 2010 5:22 am

Tablo Kayıtlarını İsteğe Uygun Dizmek

Makale dizimizin bu bölümünde table kayıtlarını dizmek için kullanıyasak kelime yöntemlere göz atacağız. Çalışma anında indeksleri değiştirerek sıralamaları nasıl ayarlayacağımıza değineceğiz. Indeks kullanımının püf noktalarını gözden geçireceğiz. Ayrıca Table öğesinin SetRange yordamları ile bazı kayıtları özgün bir şekilde nasıl gösterebileceğimize ve filitreleyebileceğimize değineceğiz.Tablo kayıtlarınızı isteğe uygun dizmek için indeks kullanmalısınız. Tanımladığınız Indeks tablo kayıtlarınızın nasıl ve hangi sırada görüneceğini belirler. Örneğin eğer AD sahası SOYAD sahasından önce geliyorsa varsayıyasak kelime görünümde AD, SOYAD sahasının solunda yer alır. Fakat bu dizilimi değiştirmek istiyorsanız soyadın addan önce tanımlandığı bir indeks tanımlayıp bunu Table öğesinin indexname özelliğine atamalısınız. Böylece görünümde AD sahası SOYAD sahasının sağında yer alır. Aynı şekilde eğer TARIH adlı bir sahanız varsa ve bu sahanın içerdiği tarih bilgilerini büyükten küçüğe dizmek istiyorsanız bu sahayı kullanarak bir indeks tanımlamalı ve indekse DESCENDANT değerini vermelisiniz.
Indexname özelliği varsayıyasak kelime indeks adını tutar. Eğer Indexname özelliğine tabloda tanımlı başka bir indeks adını atarsak o indekste tanımlı olan kurala göre veriler yeniden dizilir ve tablonun varsayıyasak kelime indeksi atadığımız indeks olur.
Table1.IndexName:='Idx_Soyad_ad';
Not:Bir tablo bir seferde sadece bir indeks kullanabilir.
Indeksleri kullanmanın en büyük faydası da tablo sahalarında arama yaparken yada tablo değerlerini filitrelerken ortaya çıkar. Eğer filitrelediğiniz yada aradığınız saha daha önce oluşturduğumuz indeks tanımında mevcutsa indeksiz arama yada filitreleme işlemlerinden çok daha hızlı uygulanır.

Indeksleme işlemi tabloları dizmek için çok iyi bir yöntemdir ama yeterli değildir. Eğer tablodaki verileri belli aralıklar içinde görüntülemek istiyorsak ve o aralık dışındaki verileri görmek istemiyorsak Range yordamlarını kullanmalıyız.
SetRange:SetRange yordamı sadece ındekslenmiş sahalarda çalışır.Bu yordam tabloya uygulanacak olan aralığı belirler. Eğer daha öncedende bir aralık belirtilmişse tüm bu değerleri sıfırlayıp yeniden bir aralık belirler.İki adet değer dizisi içerir bunlar StartValues ,EndValues.
StartValues: Aralığın başlangıç değerlerini içeren dizidir.
EndValues: aralığın bitiş değerlerini içeren dizidir.

StartValues ve EndValues dizilerinde birden fazla saha için başlangıç ve bitiş değerleri tanımlayabiliriz. Fakat tanımlama sırası her zaman indeksin tanımlama sırası ile aynı olmalıdır.
Örnek:
.........
with
table1 do
begin
DatabaseName:='DBDEMOS';
TableName:='Customer.db';
Active:=TRUE;
IndexName:='IDX_CustnoCompany';
SetRange([1001,FELIX],[2545,MOROKO]);
end;
.........

SetRange yordamından başka eğer isterseniz bir aralığı belirtmek için SetRangeStart, SetRangeEnd yordamlarını birlikte kullanabilirsiniz. Böylece program yazımında aralık değerlerini hangi sahaya atadığınızı görebilme imkanına sahip olursunuz.
SetRangeStart yordamı belirteceğiniz aralığın başlangıç değerinin girileceğini BDE'ye haber verir. SetrangeStart yordamı kullanıldıktan sonra SetRangeEnd yada ApplyRange yordamına kadar kullanıyasak kelime tüm field atamaları aralık başlangıç değeri ataması olarak işlenir.
SetRangeEnd yordamı belirteceğiniz aralığın başlangıç değerinin girileceğini BDE'ye haber verir. Tıpkı SetrangeStart yordamında olduğu gibi ardından tanımlanan field atamaları aralık son değeri ataması olarak işlenir.
SetRangeStart ve SetRangeEnd tanımlamalarından sonra mutlaka aralığın aktif olması için ApplyRange yordamı kullanılmalıdır.
Örnek:
.........
with
table1 do
begin
DatabaseName:='DBDEMOS';
TableName:='Customer.db';
Active:=TRUE;
IndexName:='IDX_CustnoCompany';
SetRangeStart;
Fieldbyname('Custno').AsInteger:=1001;
Fieldbyname('Company').AsString:='FELIX';
SetRangeEnd;
Fieldbyname('Custno').AsInteger:=2545;
Fieldbyname('Company').AsString:='MOROKO';
ApplyRange;
end;
.........

Eğer daha önceden SetRangeStart ve SetRangeEnd yordamları ile bir aralık tanımladıysanız aynı sahalarla başka bir aralık tanımlamak için EditRangeStart, EditRangeEnd yordamlarını kullanabilirsiniz.kullanımı tıpkı SetRangeStart ve SetRangeEnd yordamları gibidir.
Örnek:
.........
with
table1 do
begin
DatabaseName:='DBDEMOS';
TableName:='Customer.db';
Active:=TRUE;
IndexName:='IDX_CustnoCompany';
EditRangeStart;
Fieldbyname('Custno').AsInteger:=1001;
Fieldbyname('Company').AsString:='FELIX';
EditRangeEnd;
Fieldbyname('Custno').AsInteger:=2545;
Fieldbyname('Company').AsString:='MOROKO';
ApplyRange;
end;
.........

CancelRange yordamını kullanarak tüm aralık tanımlamalarını iptal edebilirsiniz. Böylece tablonun tüm verilerine tekrar ulaşabilme imkanına sahip olursunuz.
Sayfa başına dön Aşağa gitmek
 
Tablo Kayıtlarını İsteğe Uygun Dizmek
Sayfa başına dön 
1 sayfadaki 1 sayfası
 Similar topics
-

Bu forumun müsaadesi var:Bu forumdaki mesajlara cevap veremezsiniz
Bahçeşehirimkb Forum Sitesi :: Bilim ve Teknoloji :: Bilişim Teknolojileri :: Veri Tabanı-
Buraya geçin: