(*murat turan
tablolarda Abort'u kullanmışsınızdır. kayıt işlemini, silme işlemini, vb..
işlemleri durdurmak (iptal etmek) için tablonun gerekli olayına yazılır.
Şimdi düşününki datamodül oluşturmuşsunuz ve 5 table nesnesi yerleştirdiniz.
girilen tabloların after post olayına aşağıdaki satırı yazdınız.
*)
DbiSaveChanges((Dataset as TDBDataSet ).Handle );
(*
üsteki satır girilen ve kaydı yapılan bilgileri direkt veri tabnına işler.
kayıt sonras kitlenme vb... durumlarda kayıtda problem olmaz. aksi durumda
programı kapatmadıkça veriler tabloya işlenmez. bu kodu kullanarak verilerin
kayıt sonrası hemen tabloya aktarılması sağlanır. bu kodu kullanmak için
Uses bölümüne BDE 'yi eklemeniz gerekiyor.
şimdi gelelim asıl meseleye.
şimdi düşünün ki hem üsteki kodu kullandınız hemde Abort'u kullandınız.
Derleme sonrası hata veriyor. ve ikisininde aynı anda kullanılması engeleniyor.
bende şöyle bir fikir ürettim. Abort bir fonkisyor ve delphidede kaynağı açık.
Bu fonksiyonu başka bir isimle kendi projeme ekledim. ve ismini Abortx koydum.
artık ikisinide kullanma şansına sahip olmuş oldum. ikisi aynı anda kullanma
olasılığı var. aslında Abort iyi bir işleve sahip.
*)
Uses sysconst;
procedure AbortX;
function ReturnAddr: Pointer;
asm
MOV EAX,[EBP - 4]
end;
begin
raise EAbort.Create(SOperationAborted) at ReturnAddr;
end;