merhaba arkadaşlar....projede bir güncelleştirme istediler... büyük çoğunluğunu yaptım. bir sql sorgusunda yada projenin ilerleyişinde bir sıkıntım var. tablom şu şekilde;
uye_no
miktar
baslama_tarihi
bitis_tarihi
burada ben üyenin vermiş olduğu aidatları kaydediyorum. şöyleki üye başlangıç tarihin belirleniyor ve kaç aylıksa o yazılıyor ben otomatik olarak bitiş tarihini belirleyen bileşene başlama tarihini o kadar artırarak atıyorum ödenen miktarıda girerek kaydediyorum.
tekrar üye aidat ödemesi yapacağım zaman önce sorgulamam gerekiyor.
yeni girilen değerlerin veri tabanındaki başlama tarihi ve bitiş tarihleri arasında kalıyorsa uyarı vermesi gerekiyor. bir türlü yapamadım sql sorgumu.
örnek:
24 nolu uye 03/03/2007 ve 03/06/2007 arasındaki tüm aidatları ödemiş olsun.yeni aidat öderken önce üyenin bu bilgilerine bakacak yeni girlen değer bu değerler arasında ise mesaj vermesi ve çıkması gerekiyor. örneğin 25/03/2007 ve 20/05/2007 tarihini yukardaki tarihlerin içinde kaldığından uyarı mesajını verip çıkması gerekiyor.
Sanırım anlatabildim sorunumu arkadaşlar...
Tablodaki iki tarih alanına göre arama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Forumda arama yaparsaniz, yeterince bilgiye ulasabilirsiniz.
orn:
viewtopic.php?t=18828&highlight=tarih+arama
orn:
viewtopic.php?t=18828&highlight=tarih+arama
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Üstad sanırımbeni anlamadınız...
Veri tabnımda bir tane tarih alanı yok ben iki tane tarih alanınna göre sorgu oluşturmak istiyoum.
baslangic_tarihi
bitis_tarihi
uye_no
uye_no oalnına göre yeni bir kayıt yapacağım zaman önce sorgulamam lazım. Eğer yeni girilecek tarih değerleri veri tabanınbdaki başlangıç tarihi ve bitiş tarihi arasında kalıyorsa mesaj vermesini istiyorum.
veri tabnında 24 nolu üğyenin 03/03/2007 ve 03/05/2007 arasında bir kayıtı var diyelim. yeni kayıt gereceği zaman girilen kayıt şu olsun.25/04/2007 ve 03/05/2007 olursa butarihlerin arasında zaten kayıt var üyenin. ve mesaj vermesi gerek. ama bir türlü çözemedim. sorunu.
baslangic_tarihi
bitis_tarihi
uye_no
uye_no oalnına göre yeni bir kayıt yapacağım zaman önce sorgulamam lazım. Eğer yeni girilecek tarih değerleri veri tabanınbdaki başlangıç tarihi ve bitiş tarihi arasında kalıyorsa mesaj vermesini istiyorum.
veri tabnında 24 nolu üğyenin 03/03/2007 ve 03/05/2007 arasında bir kayıtı var diyelim. yeni kayıt gereceği zaman girilen kayıt şu olsun.25/04/2007 ve 03/05/2007 olursa butarihlerin arasında zaten kayıt var üyenin. ve mesaj vermesi gerek. ama bir türlü çözemedim. sorunu.
Insert veya Append ile giriş yapıyorsanız, tablonun BeforeInsert olayında;
SQL ile "Insert Into" ile yapıyorsanız bu işlemden hemen önce bir tane kukla sorgu yapacaksınız. Mesela şöyle bir fonksiyon olabilir...
Asıl Tablonun BeforeInsert olayında diyeceksin ki
SQL ile "Insert Into" ile yapıyorsanız bu işlemden hemen önce bir tane kukla sorgu yapacaksınız. Mesela şöyle bir fonksiyon olabilir...
Kod: Tümünü seç
Function TarihUygun( Tarih:TDate; UyeNo:Integer ):Boolean;
begin
With Form1.AdoQuery999 do begin
SQL.Text := 'SELECT Count(*) as KayitSay FROM UyelerTablosu WHERE uye_no = :uye AND baslangic_tarihi < :d0 AND bitis_tarihi > :d1';
Parameters.ParamByName('uye').Value := UyeNo;
Parameters.ParamByName('d0').DataType := ftDate;
Parameters.ParamByName('d0').Value := Tarih;
Parameters.ParamByName('d1').DataType := ftDate;
Parameters.ParamByName('d1').Value := Tarih;
Active := True;
Result := FieldByName('KayitSay').AsInteger = 0;
Active := False;
end;
end;
Kod: Tümünü seç
If NOT TarihUygun( Date, Dataset.FieldByName('UyeNo').AsInteger ) then ABORT;
-
- Üye
- Mesajlar: 261
- Kayıt: 21 Tem 2006 04:59
- İletişim:
Teşekkürler
Teşekkürler hocam ağzına sağlık. sizinle tanışmak isterim. ben erzurumda sınıf öğretmeni olarak çalışmaktayım. delphiyi kendi kendime öğrendim desem yalan olmaz. anma ilerlememde delphitürkiye ve delphi forum sitelerin payı çok büyük. siz üstadların bakış açılarıyla daha farklı bakabiliyorum olaylara.... selam ve saygılar hocam.....