İki Tarih Arasında Listeleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
İki Tarih Arasında Listeleme
Kiralanan adlı Tablomda Kiralanan filmleri kiralandığı tarihin kayıtlı olduğu ("K_Tarih") adlı alanım var datagridim de bu tablomu gösteriyorum
Kullanıcıya 2 adet datetimepicker dan başlangıç ve son tarih alıyorum bu iki tarih arasında Kiralanan filmleri Listeliyeceğim O aralıkta Kiralana filmler dışında olanlar gözükmeyecek filtre gibi
Nasıl Bir Kod İle Halledebilirim Not: Kullandığım veri tabanım paradox
Otomasyonumda Son eklenecek Parça Acill Yardım.
Kullanıcıya 2 adet datetimepicker dan başlangıç ve son tarih alıyorum bu iki tarih arasında Kiralanan filmleri Listeliyeceğim O aralıkta Kiralana filmler dışında olanlar gözükmeyecek filtre gibi
Nasıl Bir Kod İle Halledebilirim Not: Kullandığım veri tabanım paradox
Otomasyonumda Son eklenecek Parça Acill Yardım.
Re: İki Tarih Arasında Listeleme
Kod: Tümünü seç
SQL.Clear;
SQL.Add('SELECT * FROM arsiv 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:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
Label1.Caption:='kayıt var!';
end;
En son brs tarafından 23 May 2015 01:18 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: İki Tarih Arasında Listeleme
brs sizn kodu şu şekilde biraz değiştirdim
type of mismatch expression gibi bir hata aldı tip uyumsuzluğu hatası sanırım ama nerde bi hata yaptığımı bulamadım
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Tarih1,Tarih2:String;
begin
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM mus_table WHERE K_Tarih BETWEEN :Tarih1 AND :Tarih2');
Query1.ParamByName('Tarih1').value:= DateToStr(DateTimePicker1.DateTime);
Query1.ParamByName('Tarih2').Value:= DateToStr(DateTimePicker2.DateTime);
Query1.Prepared:=True;
Query1.Open;
if Query1.IsEmpty then//Kayıt yoksa
begin
Form1.Caption:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
Form1.Caption:='kayıt var!';
end;
end;
end.
Re: İki Tarih Arasında Listeleme
Database deki "K_Tarih" alanın tarih alanı mı?
Bende sorun çıkmıyor...
Bende sorun çıkmıyor...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: İki Tarih Arasında Listeleme
evet kiralama işleminin yapıldığı gün database de K_Tarih Adlı Date Özellikli alanda
kodu çalıştırdığımda yazdığım hata geliyor
Benim Örneğim https://www.dropbox.com/s/6uo1vosxhepbr6i/deneme_1.rar
kodu çalıştırdığımda yazdığım hata geliyor
Benim Örneğim https://www.dropbox.com/s/6uo1vosxhepbr6i/deneme_1.rar
Re: İki Tarih Arasında Listeleme
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Tarih1,Tarih2:String;
begin
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM mus_table WHERE K_Tarih BETWEEN :Tarih1 AND :Tarih2');
Query1.ParamByName('Tarih1').AsDate:=(DateTimePicker1.DateTime);
Query1.ParamByName('Tarih2').AsDate:=(DateTimePicker2.DateTime);
Query1.Prepared:=True;
Query1.Open;
if Query1.IsEmpty then//Kayıt yoksa
begin
Form1.Caption:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
Form1.Caption:='kayıt var!';
end;
end;
end.
Re: İki Tarih Arasında Listeleme
Geçmiş olsun sevindim sorunu çözdüğüne ben database sqlite artık kullanıyorum o yüzden databaseyi inceleyemedim...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: İki Tarih Arasında Listeleme
Bu kodları çalıştırdıktan sonra seçtiğim 2 tarih arasındaki veriyi yada verileri dbgrid de gösteriyor ama öyle kalıyor tekrar bütün tabloyu görmek için nasıl bir kod yazıcaz DBGrid.Refresh gibi bir kod lazım ama bir türlü bulamadım.
Re: İki Tarih Arasında Listeleme
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
Tarih1,Tarih2:String;
begin
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM mus_table WHERE K_Tarih BETWEEN :Tarih1 AND :Tarih2');
Query1.ParamByName('Tarih1').AsDate:=(DateTimePicker1.DateTime);
Query1.ParamByName('Tarih2').AsDate:=(DateTimePicker2.DateTime);
Query1.Prepared:=True;
Query1.Open;
if Query1.IsEmpty then//Kayıt yoksa
begin
Close;
SQL.Clear;
SQL.Add('Select * From mus_table order by ID DESC'); veya SQL.Add('Select * From mus_table');
Open;
Form1.Caption:='Belirtilen Tarihler Arasında Kayıt Bulunamadı!';
end
else
begin
Form1.Caption:='kayıt var!';
end;
end;
end.
En son brs tarafından 23 May 2015 01:18 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
Re: İki Tarih Arasında Listeleme
sizde çalıştımı bu kod ya bende çalışmıyor
SQL.Add('Select * From mus_table order by ID DESC'); yazdığımda "field in order by must be in result set" hatası veriyor run time da
SQL.Add('Select * From mus_table'); yazdığımda programı kapatıyor
SQL.Add('Select * From mus_table order by ID DESC'); yazdığımda "field in order by must be in result set" hatası veriyor run time da
SQL.Add('Select * From mus_table'); yazdığımda programı kapatıyor
Re: İki Tarih Arasında Listeleme
Kullandığım bir kod paylaştım siz arşivden değil...
İşi bilen yardım eder, az bilen akıl verir, bilmeyen eleştirir, yapamayan ise çamur atar...
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Re: İki Tarih Arasında Listeleme
Selâmlar,
Prepare sorgu aynı şekilde kalırsa bir daha çalıştırıldığında hızlı çalışmasını sağlar. Ancak bir ilk prepare edildiğinde yavaştır. Sorgu şartları tekrar tekrar değişmesi ve prepare kullanılması sorgu performansının düşmesine sebep olacaktır. !
Ayrıca aynı şartlı sorgu için prepare kontrolünüzü zenginleştirmelisiniz..
Bu gibi tarih sorgularını da müşteri seçimine bırakmak, kullanıcıya verimli bir kullanım sergileyecektir.
İyi çalışmalar.
Kod: Tümünü seç
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('Select * From TabloAdi Where ID>0);
If CheckBox1.Checked=True Then Query1.SQL.Add('and Tarih>='+QuotedStr(DatetoStr(DateTimePicker1.Date)));
If CheckBox2.Checked=True Then Query1.SQL.Add('and Tarih<='+QuotedStr(DatetoStr(DateTimePicker2.Date)));
Query1.Open;
Prepare sorgu aynı şekilde kalırsa bir daha çalıştırıldığında hızlı çalışmasını sağlar. Ancak bir ilk prepare edildiğinde yavaştır. Sorgu şartları tekrar tekrar değişmesi ve prepare kullanılması sorgu performansının düşmesine sebep olacaktır. !
Ayrıca aynı şartlı sorgu için prepare kontrolünüzü zenginleştirmelisiniz..
Kod: Tümünü seç
If not Query1.Prepared Then
Query1.Prepare;
İyi çalışmalar.