Tarih Bulma

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Naile kardeş çok teşekkür ederim.Eklentiyi yaptıp ve program çalıştı şimdi diğer alanlar için eklentileri yapacam inşallah sorun olmaz TTARIH için döngü tamam.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde devam ediyorum koşullar çalışıyor tekrar bakarsanız sevinirim.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE RO5BAKTAR BETWEEN :T1 AND :T2';
Query1.ParamByName('T1').AsDateTime := StartOfAMonth(YearOf(Date),MonthOf(Date));
Query1.ParamByName('T2').AsDateTime := EndOfAMonth(YearOf(Date),MonthOf(Date));
Query1.Open;
if Query1.Eof=false then
Begin
ShowMessage(Query1ROMUSADI.Text);
ShowMessage('Bu Ay (5 Mikron Sediment) Bakım yapılması gereken müşteriler mevcuttur !!! ');
end
Else
Query1.Close;
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE ROILKBAKTAR BETWEEN :T3 AND :T4';
Query1.ParamByName('T3').AsDateTime := StartOfAMonth(YearOf(Date),MonthOf(Date));
Query1.ParamByName('T4').AsDateTime := EndOfAMonth(YearOf(Date),MonthOf(Date));
Query1.Open;
if Query1.Eof=false then
Begin
ShowMessage(Query1ROMUSADI.Text);
ShowMessage('Bu Ay (İlk Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! ');
end;
End;
end.
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Delphi5 de DateUtils yok ne yapabilirim projem delphi5 de ben sorguyu Delphi6 da çalıştırdım sorun olmadı şimdi ise tıkandım Lütfen Yardım.:(
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
viewtopic.php?t=14007
linkinde substring ile tarih parçalama ile ilgili bir öneride bulunmuştum. Onu inceleyin belki işinize yarayabilir.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Sahi aklıma şuan geldi de Encodedate ve decodedate fonksiyonları ta delphi 2 den beri var. onları da kullanabilirsiniz.
Monthof yerine yukarıdaki fonksiyonları da kullanabilirsiniz.
Bu fonksiyonlar dateutils değil sysutils in içinde.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşım nasıl ekleyebilirim yardım edermisiniz?
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,

Kod: Tümünü seç

procedure DecodeDate(Date: TDateTime; var Year, Month, Day: Word);
yukarıda anlaşıldığı şekilde decodedate tarih olarak girilen bir veriyi yıl,ay,gün olarak parçalayıp size word olarak döndürüyor.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);

var
tarih:tdatetime;
gun,ay,yil:word;
begin
         tarih:=strtodate('23.03.2006');
     decodedate(tarih ,yil,ay,gun);
     showmessage(inttostr(ay ));

end;

yukarıdaki örnekte ay değişkenin sonucu size 3 olarak gelecektir.

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Bu şekilde yaptım ama olmadı sorgu çalışmıyor.Sorgu ilk tarihten alıp ayın son tarihine kadar her ay için dönecek.

Query1.Close;
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE RO5BAKTAR BETWEEN :T1 AND :T2';
Query1.ParamByName('T1').AsDateTime :=Date;
Query1.ParamByName('T2').AsDateTime :=Date + (28/30/31);
Query1.Open;
if Query1.Eof=false then
Begin
ShowMessage(Query1ROMUSADI.Text);
ShowMessage('Bu Ay (5 Mikron Sediment) Bakım yapılması gereken müşteriler mevcuttur !!! ');
end
Else
Query1.Close;
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE ROILKBAKTAR BETWEEN :T3 AND :T4';
Query1.ParamByName('T3').AsDateTime :=Date;
Query1.ParamByName('T4').AsDateTime :=Date + (28/30/31);
Query1.Open;
if Query1.Eof=false then
Begin
ShowMessage(Query1ROMUSADI.Text);
ShowMessage('Bu Ay (İlk Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! ');
end;
End;
Kullanıcı avatarı
naile
Admin
Mesajlar: 1873
Kayıt: 11 Haz 2003 10:11

Mesaj gönderen naile »

Burda insanlardan direk kod beklersen programcılık olarak pek birşey katedemezsin. 2 sayfa boyunca sana temel olarak lazım olan şeyler söylendi, geri kalanı senin programcılığın ile harmanlanıp bir döngü kurmaya kaldı. Eğer kendinizi geliştirmek istiyorsanız, bu tür şeyler için sizin uğraşıp hazır kod beklememeniz gerekiyor :!:
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Aslında Hazır kod beklemiyorum ama bazı yerlerde takılıyorum ve sonucu bulamıyorum bu sebepden dolayıda sizlerin yardımına ihtiyacım oluyor.Şimdi uğraştığım ve yapamadığım bu kod için yardımınızı bekliyorum yardım ederseniz çok sevinirim etmezsenizde yinede sağolun.

Kod: Tümünü seç

Query1.Close; 
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE RO5BAKTAR BETWEEN :T1 AND :T2'; 
Query1.ParamByName('T1').AsDateTime :=Date; 
Query1.ParamByName('T2').AsDateTime :=Date + (28/30/31); 
Query1.Open; 
if Query1.Eof=false then 
Begin 
ShowMessage(Query1ROMUSADI.Text); 
ShowMessage('Bu Ay (5 Mikron Sediment) Bakım yapılması gereken müşteriler mevcuttur !!! '); 
end 
Else 
Query1.Close; 
Query1.SQL.Text := 'SELECT * FROM ROKAYIT WHERE ROILKBAKTAR BETWEEN :T3 AND :T4'; 
Query1.ParamByName('T3').AsDateTime :=Date; // Buraya ayın ilk tarihini
Query1.ParamByName('T4').AsDateTime :=Date + (28/30/31); // Burayada ayın son tarihini buldurmam gerekiyor 
Query1.Open; 
if Query1.Eof=false then 
Begin 
ShowMessage('Bu Ay (İlk Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! '); 
end; 
End;

yazmış olduğunuz kod Delphi6 da işimi görüyordu ama Delphi5 de tıkandım ve bu komutların yerine başka komut bulamadım.

Kod: Tümünü seç

Query1.ParamByName('T3').AsDateTime := StartOfAMonth(YearOf(Date),MonthOf(Date)); 
Query1.ParamByName('T4').AsDateTime := EndOfAMonth(YearOf(Date),MonthOf(Date)); 
[/code]
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,

Naile Hanım'ın dediği gibi bu pilav çok su çekti.

Şimdi bir an için her şeyi unutun.
1 paradadoks tablosunu bde ile ve query ile kullanıyorsunuz.
aşağıdaki tarihlerden

Kod: Tümünü seç

kno   tarih
----    ------
1        25.01.2006
2        01.03.2006
3        15.03.2006
4        27.03.2006
5        28.03.2006
6        01.04.2006
7        31.10.2006
8        01.03.2007
günün tarihi ne olursa olsun. 2006 nın 3.ayında bu sorguyu kullandığımda bana 2,3,4,5 kayıt nolu tarihleri göstersin diyorsanız. Sizin istediğiniz olacaktır.
Bir paradadoks dosyasına yukarıdileri girip. Aşağıdaki sorguyu kullanırsanız. istediğinizi verecektir.



Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
     QUERY1.CLOSE;
     QUERY1.SQL.Clear;
    QUERY1.SQL.Add('SELECT * FROM OZCANK ');
    QUERY1.SQL.Add(' WHERE EXTRACT(MONTH FROM TARIH)=EXTRACT(MONTH FROM CAST(:BUGUN AS DATE ))');
    QUERY1.SQL.Add(' AND  EXTRACT(YEAR FROM TARIH)=EXTRACT(YEAR FROM CAST(:BUGUN AS DATE ))');
   QUERY1.ParamByName('BUGUN').AsDate:=DATE;
     QUERY1.Open;

end;

Kolay gelsin.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Emeği geçen tüm arkadaşlarıma çok teşekkür ediyorum.Sorgum çalışıyor.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
ozcank yazdı:Emeği geçen tüm arkadaşlarıma çok teşekkür ediyorum.Sorgum çalışıyor.
Sorununuzu halletmenize sevindim. Yalnız sorgunuz çalışıyor da nasıl çalışıyor bir de onu belirtip son noktayı koysaydınız. Böyle sorunu olan bir arkadaşımız bari çözümün ne olduğunu bilirdi.

Kolay gelsin.


Düzeltme : @bLue aLonE hocamızın uyarısı üzerine Yalnız kelimesini düzelttim. Kendisine uyarısı için teşekkür ediyorum.
En son ofenX tarafından 03 Mar 2006 06:28 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
http://www.aysbergbilgisayar.com
Logo Go özel eğitim, web tasarım, teknik servis
aLonE CoDeR
Kıdemli Üye
Mesajlar: 1223
Kayıt: 26 Nis 2005 04:08

Mesaj gönderen aLonE CoDeR »

@ofenx;

Ukalalık olarak algılama ama belirtmeden geçemeyeceğim, yanlız değil yalnız şeklinde yazılır bu kelime.

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

Mesaj gönderen naile »

Arkadaş "sorgun çalışıyor" demek istemiş diye düşünmek istiyorum. Yoksa zannetmiyorum tamamını yazdırıpta sonra da sorgum diyeceğini :evil:
Cevapla