Kod: Tümünü seç
var
islem,gun,ay,yil:integer ;
artiklar:integer;
basyili,basAyi,basGunu,bitYili,bitAyi,bitGunu:word;
begin
if not assigned(frmarsivanagiris) then
begin
frmarsivanagiris:=Tfrmarsivanagiris.Create(self);
frmarsivanagiris.Show;
frmarsivanagiris.WindowState:=wsmaximized;
sicilarsivverigirisdm.sicilarsivibdset.active:=true;
sicilarsivverigirisdm.sicilgelisibdset.active:=true;
sicilarsivverigirisdm.SahteSicillerIBDSet.Active:=true;
end
else
frmarsivanagiris.BringToFront;
try
sicilarsivverigirisdm.sicilArsivibDSet.Active:=true;
sicilarsivverigirisdm.sicilArsivibDSet.First;
while not sicilarsivverigirisdm.sicilArsivibDSet.Eof do
begin
sicilarsivverigirisdm.sicilArsivibDSet.Edit;
artiklar:=0;
decodedate(trunc(sicilarsivverigirisdm.sicilArsivibDSet.fieldbyname('DOGUMTARIHI').AsDateTime),basyili,basayi,basgunu);
decodedate(trunc(date),bityili,bitayi,bitgunu);
if isleapyear(basyili) then artiklar:=artiklar+1;
artiklar:=artiklar+trunc((bityili-basyili)/4);
islem := trunc(date) - trunc(sicilarsivverigirisdm.sicilArsivibDSet.fieldbyname('DOGUMTARIHI').AsDateTime);
islem:=islem-((bityili-basyili)*5)-artiklar;
gun := islem mod 30; //her ayın 30 gün olduğu kabul edildi.
ay := (islem div 30) mod 12;
yil := (islem div 30) div 12;
sicilarsivverigirisdm.sicilArsivibDSet.FieldByName('YASGUN').AsInteger:=gun;
sicilarsivverigirisdm.sicilArsivibDSet.FieldByName('YASAY').AsInteger:=ay;
sicilarsivverigirisdm.sicilArsivibDSet.FieldByName('YASYIL').AsInteger:=yil;
sicilarsivverigirisdm.sicilArsivibDSet.Post;
sicilarsivverigirisdm.sicilArsivibDSet.Next;
end;
finally
showmessage('Kayıtların Yaş Hesaplamaları Güncellendi.');
end;
hali hazırda 150 000 kayıt girilecek ve bu kayıt sayısı gün geçtikçe artacak. sanırım bu yapı biraz kasacak. yaş aralığında kayıt sorgulama için bu güncel yaş bilgileri de lazım olacağından en iyi, stabil ve hızlı yapı nasıl oluşturmalıyım?.
bu kodları yine bu forumdan paylaşımcı ustalarımdan elde ettim ve şu an için deneme kayıtlarında sorunsuz çalışıyor.
teşekkür ve saygı ile kolay gelsin