var
SL: TStringList;
gun :integer;
ay, yil, hatir_tarih : string;
begin
SL := TStringList.Create;
try
SL.Delimiter := '-';
SL.DelimitedText := sstatusbar1.panels[0].text;
yil := SL.Strings[0];
ay := SL.Strings[1];
gun := StrToInt(SL.Strings[2]);
gun := gun + 3;
hatir_tarih := yil + '-' + ay + '-' + IntToStr(gun);
with kontrolQRY do
begin
Close;
SQL.Clear;
SQL.Add('SELECT islem_tarihi, konu FROM hatirlatma WHERE islem_tarihi BETWEEN :tarih1 and :tarih2 ');
params.parambyname('tarih1').value := sstatusbar1.panels[0].text;
params.parambyname('tarih2').value := hatir_tarih;
Active:=true;
Open;
kontrolQRY.First;
while not kontrolQRY.Eof do
begin
smemo2.lines.Add( kontrolQRY.fieldbyname('islem_tarihi').AsString +#32+ 'Tarihinde' +#32+ kontrolQRY.fieldbyname('konu').AsString +#32+ 'Konulu Hatırlatmanız Var');
kontrolQRY.Next;
end;
end;
finally
SL.Free;
end;
end;
begin
try
with Arsiv do
begin
Close;
SQL.Clear;
SQL.Add('Select * From list Where TARIH BETWEEN :Tarih1 AND :Tarih2');
ParamByName('Tarih1').value := FormatDateTime('yyyy-mm-dd', StrToDate(MaskEdit1.Text));
ParamByName('Tarih2').value := FormatDateTime('yyyy-mm-dd', StrToDate(MaskEdit2.Text));
Prepared := True;
Open;
if IsEmpty then // Kayıt yoksa
begin
Label1.Caption := 'Kayıt Bulunamadı!';
end
else
begin
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Buradaki amacım bugünün tarihinden başlayıp bu tarihten sonraki 3 günü sorgulayıp listelemek. Bu kodlar ile istediğime ulaşabiliyorum ama daha kısa bir yolu var mı bunu öğrenmek istedim bu konuda yardımcı olabilir misin?
var
dtTarih : TDate;
begin
dtTarih := Int(Now); // INT() fonksiyonunu burada bugünün tarihinin Saat = 00:00:00 halini almak için kullandık...
with kontrolQRY do
begin
Active:=False;
SQL.Clear;
SQL.Add('SELECT islem_tarihi, konu FROM hatirlatma WHERE islem_tarihi BETWEEN :tarih1 and :tarih2 ');
params.parambyname('tarih1').DataType := ftDate;
params.parambyname('tarih1').value := dtTarih;
params.parambyname('tarih2').DataType := ftDate;
params.parambyname('tarih2').value := IncDay(dtTarih, 3);
Active:=true;
kontrolQRY.First;
while not kontrolQRY.Eof do
begin
smemo2.lines.Add( kontrolQRY.fieldbyname('islem_tarihi').AsString +#32+ 'Tarihinde' +#32+ kontrolQRY.fieldbyname('konu').AsString +#32+ 'Konulu Hatırlatmanız Var');
kontrolQRY.Next;
end;
end;
end;
var
SL: TStringList;
hatir_tarih : string;
function TQ(aString: String): String;
begin
result := QuotedStr(Trim(aString));
end;
begin
SL := TStringList.Create;
SL.Delimiter := '-';
SL.DelimitedText := sstatusbar1.panels[0].text;
hatir_tarih := Format('%s-%s-%d', [SL.Strings[0], SL.Strings[1], StrToIntDef(SL.Strings[2], 1{!}) + 3 ]);
with kontrolQRY do begin
Close;
SQL.Clear;
SQL.Text := format('SELECT islem_tarihi, konu FROM hatirlatma WHERE islem_tarihi BETWEEN %s and %s', [TQ(sstatusbar1.panels[0].text), TQ(hatir_tarih)]);
Open;
while not Eof do begin
smemo2.Lines.Add( format('"%s" Tarihinde "%s" konulu hatırlatmanız var', [FieldByName('islem_tarihi').AsString, FieldByName('konu').AsString]) );
Next;
end;
end;
end;