Tarih Bulmada Sorun

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

Tarih Bulmada Sorun

Mesaj gönderen ozcank »

Arkadaşlar daha önceden hatırlarsınız Tarih bulma ile ilgili bir başlık vardı ve orda sorunumu halletmiştim fakat bugün 01.04.2006 tarihinde Form22 ye girmemeye başladı sebebinide anlamadım bu zamana kadar düzgün ilerliyordu bugün girmemeye başladı tarihi 02.04.2006 yaptım yine aynı eğer Form22 nin başına ShowMessage('Nerde Hata') şeklinde yazdığımda ise Form22 e girmeye başladı ama mesajı vermedi.Bir bakarsanız çok sevinirim.


Kod: Tümünü seç

procedure TForm1.Button22Click(Sender: TObject);
begin
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From RO5BAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM RO5BAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM1 = True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (5 Mikron Sediment) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
  end;
end
Else
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From ROILKBAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM ROILKBAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM2=True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (İlk Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
  end;
end
Else
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From RO1BAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM RO1BAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM3=True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (1 Mikron Sediment) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
  end;
end
Else
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From ROMEMBAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM ROMEMBAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM4=True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (Membran) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
  end;
end
Else
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From ROSONBAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM ROSONBAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM5=True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (Son Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
 end;
end
Else
Form22.Show;   // Buraya girmesi gerekiyor.
end;
Kullanıcı avatarı
rsimsek
Admin
Mesajlar: 4482
Kayıt: 10 Haz 2003 01:48
Konum: İstanbul

Mesaj gönderen rsimsek »

@ozcank çok uzun yazmış olmanla birlikte, kodunun
...
Query1.Open;
if Query1.Eof=false then
...
kısmında sorguyu açıp eof olup olmamasına bakman işi garanti etmez ki. Daha önce de söylendiği gibi "Select Count(*) as Kayit_Sayisi from tablo ..." şeklinde sorgulatıp bu karara varsan daha tutarlı olacak.. Belki Query1.RecordCount a da bakabilirsin :wink:
Bilgiyi paylaşarak artıralım! Hayatı kolaylaştıralım!!
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

rsimsek abi ay içinde tarih kontrolu yaptırıyorum ve nedense bugünden itibaren girmemeye başladı Form22 ye onu anlamadım ben.
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
Belki program size bir nisan şakası yapıyordur. :lol:
Şaka bir yana ben işlerim ters gittiğinde kontrol edeceğim yerlere

Kod: Tümünü seç

showmessage('durdum ');
gibi bir yerlerde durup veya bir alanın içeriğini yazdırırım. Siz de gerekli yerlerde kontrollerinizi yaptırıp. Nerede terslik olduğunu anlamaya çalışın.

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 »

Kod 31.03.06 tarihine kadar normal çalışıyordu anlamadım ne oldu? ofenx dediklerini yaptım en son ShowMessage('nerde hata') msj koydum orda çalıştı ama sildiğimde yine çalışmadı mesajıda vermedi.

Kod: Tümünü seç

 finally 
    Free; 
 end; 
end 
Else 
ShowMessage('nerde hata') ; // eklediğimde çalışıyor ama mesaj vermiyor sildiğimde yine çalışmıyor.
Form22.Show;   // Buraya girmesi gerekiyor. 
end; 
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
demek ki istediğiniz yere kadar geliyor. Bu durumda form22 ile ilgli bir sorununuz var demektir. Programın başka bir yerinde yaptığınız bir ayardan dolayı çalışmıyordur. Onları kontrol edin.

form22 ye yaptığınız visible, hide türü komutlara bir bakın.

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şlar bu arada bir sorun var çünkü 'Son Karbon' tarihini ileri tarih verdikten sonra program çalıştı.Ve sorunun bu arada olduğunu keşfettim ama ne olduğunu anlayamadım yardım ederseniz çok sevinirim.

Kod: Tümünü seç

  end;
end
Else
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('SELECT * FROM ROKAYIT');
Query1.Sql.Add(' Where Extract(Month From ROSONBAKTAR)=Extract(Month From Cast(:TARIH As Date ))');
Query1.Sql.Add(' AND  Extract(YEAR FROM ROSONBAKTAR)=Extract(Year From Cast(:TARIH As Date )) AND BAKIM5=True');
Query1.ParamByName('TARIH').AsDate:=Date;
Query1.Open;
if Query1.Eof=false then
Begin
With CreateMessageDialog('Bu Ay (Son Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do
  try
    Color:=clGray;
    Font.Color:=clNavy;
    Font.Size := 13;
    Font.Style := [fsItalic];
    ShowModal;
  finally
    Free;
 end;
 end
Else
Form22.Show;
End;
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Mesaj gönderen ozcank »

Arkadaşlar şöyle çözdüm ama döngğde bir sorun var bu konuda yardım ederseniz çok sevinirim.

Kod: Tümünü seç

With CreateMessageDialog('Bu Ay (Son Karbon) Bakım yapılması gereken müşteriler mevcuttur !!! '#10#10#13, mtinformation, [mbOk]) do 
  try 
    Color:=clGray; 
    Font.Color:=clNavy; 
    Font.Size := 13; 
    Font.Style := [fsItalic]; 
    ShowModal; 
  finally 
    Free; 
end; 
Form22.Show;
end 
Else 
Form22.Show; 
End; 
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
free dediğiniz zaman neyi free ediyor.
onda bir sıkıntı olabilir.
with içine almışsınız ama yinede free komutunun önüne free etmek istediğiniz formuda yazıp bi deneyin.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
ofenX
Üye
Mesajlar: 397
Kayıt: 09 Nis 2005 10:24
Konum: Diyarbakır
İletişim:

Mesaj gönderen ofenX »

Merhaba,
sanırım sizin sorununuz if then else bloklarından kaynaklanıyor.
"bakım olsa olmasa en son form22 yi göstersin" ise sizin sorununuz

end lerden sonra bıraktığınız else lerin hepsini silip çalıştırın. Yukarıdakilerden başka bir şey istiyorsanız mesaja devam edin bakalım.

Kolay gelsin.
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 »

Ben, Break Point kullanmayı öğrenmeni salık veririm, en büyük sıkıntın bunu kullanmamakta :idea:
Kolay gele..
Cevapla