Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
| Cevap: SQL VE TQUERY Dev Arşiv...
19) FETCHALL Aktif kursörün olduğu pozisyondan itibaren dosyanın sonuna kadar olan tüm kayıtları getirir ve onları yerel olarak saklar. procedure FetchAll;
Cachelenmiş güncellemeleri kullanırken network trafiğini düşürmek için kullanın. FetchAll ChecekBrowseMod' u yapılan değişiklikleri kaydetmek için kullanır. Sonra kursörün bulunduğu yerden itibaren tüm kayıtları çağırır ve saklar.
Genellikle cache güncellenmeler aktif edildiklerinde görüntülenecek bilgi kadar veri çağrılır. her yeni getirme olayı yalnızca okunabilir bir transaction başlatır. Transferleri sağlamlaştırmak ve network trafiğini azaltmak için uygulama fetchall çağrısını kullanır.
NOT: Bu çağrıyı yapmak network ortamında aynı anda birden fazla kullanıcının aynı kayda ulaşmaya çalışması ve değişiklik yapmak istemesi yüzünden güvenilirlik ve kullanışlılık açısından sakıncalıdır. 20) GETCURRENTRECORD
Aktif kaydı tampon belleğe çağırır. function GetCurrentRecord(Buffer: PChar): Boolean;
Çoğu uygulamalar .GetCurrentRecord a ihtiyaç duymazlar. Ttable otomatik olarak aktif kaydı belleğe yerleştirir. Buffer en az RecordSize ile belirtilen boyut kadar olmalıdır. 21) GETINDEXINFO
Tablonun indeks veri alanlarına aktif indeks hakkındaki bilgileri çağırır . procedure GetIndexInfo;
GetIndexInfo 'yu aktif indeks hakkındaki bilgiyi güncelleştirmek için çağır. Genellikle bir uygulama bu çağrıya ihtiyaç duymaz. Bazı uygulamalar yinede kullanmaları gerekir. GetIndexInfo BDE 'yi şu bilgileri de içererek sorgular.
Aktif indeks bir Dbase indeksimi? indeks büyük-küçük harf duyarlı mı ? , İndeksi oluşturan alan sayısı , İndeks için alan haritası , İndeks anahtarının boyutu. İndeks eğer Dbase indeksi ise alan sayısı ve alan haritası çağrılmaz. 22) LOCATE
Tablo içinde özel bir kaydı arar ve onu aktif kaydı arar. type
TLocateOption = (loCaseInsensitive, loPartialKey);
TLocateOptions = set of TLocateOption;
function Locate(const KeyFields: string; const KeyValues: Variant; Options: TLocateOptions): Boolean;
Anahtar alan bir string olup virgülle ayrılmış aranacak isimlerin bulunduğu bir alanı içerir. Anahtar değer anahtar alandaki değerlerle eşleşen farklı bir dizidir. Çoklu arama değeri belirtebilmek için anahtar değeri değişken dizisi olarak giriniz. Vararrayof komutuyla dizi yapısı oluşturulur. with CustTable do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P']), [loPartialKey]);
Options ek arama seçenekleri sunan bir dizidir. Eğer Options IoCaseInsentive ayarlar içeriyorsa Locate büyük harf ayarına uymayanları atlar. Eğer Options IoPartialKey ayarlarını içeriyorsa Locate verilen anahtarın belli bir kısmına uyan ilk kayda konumlanır. Eğer Options boş bir set ise veya anahtar alan string alan değilse Options atlanır.
Locate aranılan kaydı bulursa true döndürür ve onu aktif kayıt yapar. Diğer hallerde Locate False döndürür.Locate eşlenen kayda ulaşmak için en hızlı metodu kullanır. Eğer indeks varsa ve aranılan değer de bu indeks alanıyla aynıysa Locate indeksi kullanır. Yoksa Locate arama için filtre üretir. 23) LOOKUP
Arama değerlerine eşit olan kayıtlardaki değerleri getirir. function Lookup(const KeyFields: string; const KeyValues: Variant; const ResultFields: string): Variant;
Lookup 'ı belirlenmiş alanlara arama kriterine eşit olan kayıtlardan değerler getirmek için kullanın. Anahtar alan virgülle ayrılmış aranacak olan alan isimlerinin listesidir. Çoklu arama değerleri belirtebilmek için KeyValues' ü değişken dizisi olarak , argüman olarak girin. 24) REVERTRECORD
Cached güncellemeler aktif olduğunda aktif kaydı unmodified durumuna yeniden yükler. Procedure RevertRecord;
Bunu yapılan değişiklikleri geri almak için kullanın. Yalnız cached güncellemeler aktif olduğu zaman yapın.
NOT: Cache teki bütün değişiklikleri iptal etmek için CancelUpdates' i çağırın. Örnek : Cachelenmiş güncellemeler enable olduğunda silinen kayıtları kurtarmayı gösteren bir örnek program. procedure UndeleteAll(DataSet: TDataSet);
begin
with DataSet do
begin
UpdateRecordTypes := [rtDeleted]; {sadece silinen kayıtlar görünür olacak }
try
First;
while not EOF do
begin
RevertRecord; {aktif kaydı kurtar}
Next;
end;
finally
UpdateRecordTypes := [rtModified, rtInserted, rtUnmodified];
end;
end;
end; 25) UPDATESTATUS
Tablonun aktif güncelleme durumunu rapor eder. type UpdateStatus = (usUnmodified, usModified, usInserted, usDeleted);
function UpdateStatus: TUpdateStatus;
Update durumu kayıtlar düzeltildikçe, eklendikçe, silindikçe sık sık değişir.
UpdateStatus metodunun geri dönüş değerlerinden bazıları şunlardır.
UsUnmodified Kayıt değiştirilmemiş
UsModified Kayıt değiştirilmiş
UsInserted Kayıt eklenmiş
UsDeleted Kayıt silinmiş. TDATASET' den devralınan Metotlar 26) ACTIVEBUFFER
Aktif kayıt için tampona pointer döndür . function ActiveBuffer: PChar;
ActiveBuffer ın , aktif kaydın bufferına işaret ettiğinden emin olmak için tablo yöntemleri tarafından dahili olarak kullanılır . Eğer uygulama , varolan tablo yöntemlerini kullanırsa , aktif tampon her zaman, true olarak ayarlanılır . Bundan dolayı ActiveBuffer' ı doğrudan çağırmaya genellikle gerek yoktur . Aynı zamanda ActiveBuffer yer imi metotlarınca yerimi bilgisini getirmek için kullanılır.
Özel tablo yöntemleri gerektiren uygulamalar tampon veriye erişmek için ActiveBuffer' ı çağırırlar. Özellikle veri tabanındaki kayıtlar arasında ilerlerken bu daha çok lazımdır. Bu durumlarda bile eğer özel yöntemler Next , Prior gibi metotları çağırırsalar aktif tampon otomatik olarak ayarlanır. 27) APPEND
Tablonun sonuna yeni , boş kayıt ekler . Procedure Append;
Append' i şunlar için kullanın.
1) Tablonun sonunda yeni , boş kayıt açmak ,
2) Yeni kaydı aktif kayıt olarak ayarlamak,
Append çağrısı yapıldıktan sonra uygulama kayda veri girebilir ve bunları post çağrısıyla kaydedebilir. Yenice eklenen kayıt , aşağıdaki üç yolun biriyle veri tabanına kaydedilir .a) İndekslenmiş paradox ve dbase tabloları için kayıt , dizinine dayanılan
konumda tablo içine eklenir .
b) Indekslenmemiş paradoxu ve dbase tabloları İçin , kayıt , tablonun sonu-na eklenilir .
c) Sql veri tabanları için , eklemenin fiziksel yerleşimi özel yapılır.
d) İndekslenmiş tablolar için , dizin , yeni kayıt bilgisi ile güncelleştirilir . Örnek : Bu örnek butona tıklandığında yeni bir kayıt ekler. Alfanumeric ve integer adlıiki alan iki edit kutusundaki değerce doldurulur. procedure TForm1.Button1Click(Sender: TObject);
begin
Table1.Append;
Table1.FieldValues['ALPHANUMERIC'] := Edit1.text;
Table1.FieldValues['INTEGER'] := StrToInt(Edit2.text);
Table1.Post;
end; 28) APPENDRECORD Veri tabanının sonuna yeni bir kayıt ekler. procedure AppendRecord(const Values: array of const);
Tablonun sonunda yeni , boş kayıt oluşturmak için AppendRecord' u çağırır ve veri tabanına değerleri kaydeder . Yeni eklenilen kayıt , aşağıdaki üç yo-lun biriyle veri tabanına kaydedilir .
İndekslenmiş Paradox ve Dbase tabloları için , kayıt , onun dizinine dayanan konumda tablo içinde araya eklenilir . İndekslenmemiş Paradox ve Dbase tabloları İçin , kayıt , tablonun sonuna eklenilir . Sql veri tabanları için , eklemenin fiziksel yerleşimi özel yapılır. . İndekslenmiş tablolar için , dizin , yeni kayıt bilgisi ile güncelleştirilir . Yeni eklenilen kayıt , aktif kayıttır .
Örnek: Customer.AppendRecord([CustNoEdit.Text,CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]); NOT : Eğer dizinin sonunda belli bir değer yoksa Null yazmanıza gerek yoktur. Burada en son eleman DiscountEdit.Text olduğu için aradakileri Null ile belirtmemiz gerekir. 29) CHECKBROWSEMODE
Uygulama aktif kaydı değiştiren bir metodu çağırdığında otomatik olarak değişiklikleri kaydeder veya iptal eder. Procedure CheckBrowseMode; Tablonun durumu , dsEdit , dsInsert veya dsSetkey durumu olduğunda ve başka bir kayda bağlanan bir metot çağrıldığında CheckBrowseMode , aktif kayıtta yapılan değişikliklerin veri tabanına kaydedildiğinden emin olmak için bir çok tablo yöntemi tarafından dahili olarak kullanılır . Eğer durum , dsEdit veya dsInsert olsa , CheckBrowseMode , UpdateRecord 'u çağırır ve sonra , eğer tablo için değiştirilmiş özellik , true olursa , CheckBrowseMode, Post' u çağırır . Modified False ise CheckBrowseMode Cancel' ı çağırır. Eğer durum , dsSetkey olsa , CheckBrowseMode, Post' u çağırır .
Eğer durum , dsInactive olursa , CheckBrowseMode, kural dışı durumu or-taya çıkarır. Eğer uygulama var olan tablo yöntemlerinden birini kullanıyorsa CheckBrowseMode yalnızca ihtiyaç duyulduğunda çağrılır. Bu yüzden genel-likle bunu direk olarak çağırmak gerekmez. Özel tablo yöntemlerini gerekti-ren uygulamalar CheckBrowseMode' u başka bir kayda geçildiğinde deği-şikliklerin kaydedilip kaydedilmediğinden emin olmak için kullanırlar. 30) CLEARFIELDS
Aktif kayıt için bütün alanların içindekileri temizler . procedure ClearFields; Aktif kayıt için bütün alanların aktif içeriklerini silmek amacıyla ClearFieldsi çağır . Eğer tablo ne dsInsert ne de dsEdit durumunda ise ClearFields bir istisna durumu çıkarır. Diğer hallerde DataEvent olay durum ayarlayıcısını CheckBrowseMode' u çağırmak için kullanır. Sonra kayıttaki tüm alanları temizleyerek işe başlar. Eğer Setkey işlemi yapılmamışsa ClearFields tüm hesaplanmış alanları tekrar hesaplamak zorunda kalacaktır. Aynı zamanda DataEvent denetimciyi kaydın değiştiğini bildiren bir parametre ile çağırır. . Dönüşte , Data Event denetimcisi , tablo ile ilgili veri kaynağı bileşeni için ondatachange olay denetimcisini çağırır . 31) CLOSE
Tabloyu kapatır . Procedure Close ; Tablonun Active özelliğini false ayarlamak için Close' u çağırın . Active , False olduğunda tablo, kapatılır. Tablo , veriyi okuyamaz veya veri tabanına veriyi yazamaz . Uygulamada veriyi gösteren veri tabanı veya dene-timlerin durumunu etkileyen diğer özellikler değişmeden önce uygulama , Active' i false ayarlamalı . Örneğin , DataSource' un tablo özelliğini değiştirmeden önce Active false ayarlanmalı ki bu işlem yapılabilsin. Active' i false ayarlamak tabloyu dsinactive durumuna koyar ve BDE imlecini kapatır. |