firebird 1.5 ile yaptığım bir projede kişilerin yaşını bir döngü ile güncellettiriyorum.
Kod: Tümünü seç
procedure TfrmIstatistik.BitBtn13Click(Sender: TObject);
var
TARIH,BUGUN:TDateTime;
GUN1,AY1,YIL1,GUN2,AY2,YIL2:word;
GUN,AY,YIL:integer;
begin
ibdataset1.Open;
ibdataset1.First;
ibdataset1.FetchAll;
progressbar1.Max:= ibdataset1.RecordCount;
label97.Caption:= 'Yaş güncelleme sırasında lütfen bekleyiniz. Bu işlem kayıt sayınıza bağlı olarak zaman alabilir.';
Screen.Cursor := crHourGlass;
while not ibdataset1.Eof do
begin
BUGUN:=Date;
TARIH:=ibdataset1DOGUMTARIHI.Value;
DecodeDate(BUGUN, YIL1, AY1, GUN1);
DecodeDate(TARIH, YIL2, AY2, GUN2);
YIL:=YIL1 - YIL2;
AY:=AY1 - AY2;
if AY<0 then
begin
AY:=AY+12;
YIL:=YIL-1;
end;
GUN:=GUN1 - GUN2;
if GUN<0 then
begin
GUN:=GUN+30;
AY:=AY-1;
end;
if AY<0 then
begin
AY:=AY+12;
YIL:=YIL-1;
end;
ibdataset1.Edit;
ibdataset1YAS.Value:=YIL;
ibdataset1.Post;
application.ProcessMessages;
ibdataset1.Next;
progressbar1.Position:= ibdataset1.RecNo;
end;
progressbar1.Max:= 0;
label97.Caption:= 'Yaş güncelleme işlemi bitti.';
Screen.Cursor := crDefault;
label179.Caption:= '';
end;
acaba yukarıdai kodlarda bir hata veya mantıksızlık var mı?.
bu süreyi en minumuma nasıl indirebilirim.
iyi çalışmalar.