Farklı bir şekilde tarihe göre arama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vahapburhan
Üye
Mesajlar: 28
Kayıt: 24 Tem 2004 11:42
Konum: Elazığ
İletişim:

Farklı bir şekilde tarihe göre arama

Mesaj gönderen vahapburhan »

mrblar arkadaşlar

tam 2 gündür bir hatayla uğraşıyorum.Amacım programda bir kasanın günlük (yani sistem saatinden alınan o günlük) girdi çıktı toplamlarını gösterebilmek.Yazdığım hiç bir sorgu çalışmadı.Tarih alanı veri tabanında date olarak tanımlanmış ve veri tabanı olarakta MySql kullanıyorum.

Yardım edecek olan arkadaşlara şimdiden teşekkürler..

Kod: Tümünü seç

  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select * from gelir');
  Query1.SQL.Add('where tarih = " datetostr(now) " ');
  Query1.Open;

   de:=0;
    Query1.First;
    for k:=1 to Query1.RecordCount do
    begin
         de:=de+Query1.FieldByName('tl').AsFloat;
         Query1.Next;
    end;
    ShowMessage(CurrToStr(de));
    Label33.Caption:=floattostr(de); // Toplamı Label33e yazdırıyorum
Yarın ölecekmiş gibi ahirete, hiç ölmeyecekmiş gibi dünyaya çalış..
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
now yerine date kullanırsan sanırım çözüm olur.
now kullandığın zaman saatide alıyor dolayısı ile kayıtlar bulunamıyor.
eğer vt de saati de tuttuysan ayrı.
olmazsa birde iki tarih arasındaki kayıtları getirmeyi dene saat de varsa
birinci tarih "02.08.2004 00:00" olur ikinci tarih "02.08.2004 23:59" olursa odün ve saat aralığındaki kayıtları getirmesi lazım.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
P206
Kıdemli Üye
Mesajlar: 395
Kayıt: 17 Haz 2003 12:36
Konum: İstanbul

Mesaj gönderen P206 »

Query ni birde şöyle dene SQL server da tarih alanlarında hata vermişti zamanında

Kod: Tümünü seç

Query1.Close; 
  Query1.SQL.Clear; 
  Query1.SQL.Add('select * from gelir'); 
  Query1.SQL.Add('where tarih = :tarih  '); 
  Query1.ParamByName('tarih').AsDate:=now;
  Query1.Open;
birde böyle dene.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Re: FARKLI BİR ŞEKİLDE TARİHE GÖRE ARAMA

Mesaj gönderen naile »

Tarih için herzaman Param kullanın ve toplam almak için SUM kullanabilirsiniz. Bunları değiştirince kodunuz:

Kod: Tümünü seç

  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add('select SUM(tl) from gelir');
  Query1.SQL.Add('where tarih = :tarih ');
  Query1.ParamByName('tarih').asdatetime := date;
  Query1.Open;

  Label33.Caption:=Query1.Fields[0].asString; 

Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

vahapburhan yazdı:o söylediklerinizide denedim ama sorun ilk baştaki yazdığım sorguda querynin içeriği boş geliyor düşüncem Mysql veri tabanını kulladığım için olsa gerek.yinede sağolun.yalnız bu programı bugün bitirmem lazım..
Soruyu tüm foruma yazmanız cevap alma şansınızı yükseltir.
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Sql komutlarını delphinin dışında deneyebilirsin. Bu kodu bir çalıştır. O tarihe ait bütün alanları select yap v.b. mysql bilmiyorum ama bir arkadaşımdan bu sorgulama işini nasıl yapabileceğini öğrendim
Komut satırında c:\mysql\bin\mysql.exe dosyasini calistir. Karsina komut satiri cikacak mysql> seklinde. Orada database baglanmak icin
connect database adi

normal sql komutlarini yazabilirsin ama yazdigin her komutun sonuna ";" isaretini ekle.
select max(kayno) from kimlik;
gibi
Kolay gelsin..
Kullanıcı avatarı
vahapburhan
Üye
Mesajlar: 28
Kayıt: 24 Tem 2004 11:42
Konum: Elazığ
İletişim:

Hatamdan dolayı özür dilerim

Mesaj gönderen vahapburhan »

Form kurallarına uymadığım için özür diliyorum.Ancak benim anlamadığım forumdaki birçok kişi forma yazdığı soruyu bile doğru düzgün açık bir şekilde yazamazken bu derecede eleştiri almam biraz garip.Ama elbette forum kurallarına uymak zorundayız.

İyi çalışmalar...
Yarın ölecekmiş gibi ahirete, hiç ölmeyecekmiş gibi dünyaya çalış..
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7603
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Sevgili @vahapburhan,

bunu çeşitli defalar vurguladım. Biz forum kurallarına dikkat ediyoruz ve bu konuda mazaret kabul etmiyoruz. Başkaları kurala aykırı mesaj atmış ise, size olduğu gibi özel mesajla uyarısını almıştır.

Umarım bundan sonra dikkat edersiniz. Emin olunki yine elimizden geleni yapacağız, bu noktada şüpheniz olmasın. Eğer uymazsanız bu forumda yeriniz yok maalesef.

Kolay gelsin.
Kullanıcı avatarı
vahapburhan
Üye
Mesajlar: 28
Kayıt: 24 Tem 2004 11:42
Konum: Elazığ
İletişim:

Mesaj gönderen vahapburhan »

Arkadaşlar bu tarihle arartırıp toplam aldırma olayını arkadaşımında(Mustafa) yardımıyla sonunda çözdüm.Sorun kullandığım veri tabanı olan mysql'de date tarih alanı varsayılan olarak 0000-00-00 atıyormuş.yazdığımız sorguların hepsindede 00-00-0000 olarak aradığından bir sonuç geri dönderemiyordu.

Böyle bir sorunla karşılaşan arkadaşlar ilk önce veri tabanına bakmalarını tavsiye ediyorum..

Yardım eden tüm arkaşlara teşekkürler...
Yarın ölecekmiş gibi ahirete, hiç ölmeyecekmiş gibi dünyaya çalış..
Cevapla