Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Pascal / Delphi / Delphi.NET

Cevapla
 
LinkBack Seçenekler
Eski 12/05/2008, 01:22   #1 (permalink)
Üye
 
metali Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Mesaj: 117
Varsayılan iki tarih arasıdeğişik bir sıralama

cemali hocam şöyle bir sorum olacak daha önceden ugrastıgım fakat üstesinden gelemediğim bir sorunu sizle paylasmak istiyorum..

veritabanımda iki alan var başlangıç yılı ve bitiş yılı diye.

ör:

baş. yılı: 12/89
bitiş yılı: 12/99 gibi....

daha da korkunç olanı bu alanların hepsi char bilgi (string). ve ben bunlar arasında tarih aralıgdan sorgulamak istiyorum. bir öneriniz var mı ya da bir yol çizermisiniz.
__________________
metali hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:23   #2 (permalink)
Kodlarım, Canlarım...
 
cemaliozan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Yer: » Delphi Bölümü «
Mesaj: 1,677
Varsayılan

alanları tarih tipine çevirmelisin... Aksi halde istediğin sorgulama sonucunu elde edemezsin. Neden ? Cevabı sen ver...
__________________
Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler
Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin...
cemaliozan hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:24   #3 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

strtoDate
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:27   #4 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Access ve Query kulanıyorusunz değil mi ?


Evet öyleyse aşağıdaki kodumu kendinize göre ayarlayınız lütfen

Sadece SQL cümlem biraz uzun kolay bir kod, hemen çözersiniz



Kod:
 
 
 
 
adoquery2.close;                                                                                                                              //BETWEEN :tarih1  and :tarih2
adoquery2.sql.clear;
adoquery2.sql.add('SELECT [_TakasCekleri].*, CekKarti.MusteriKodu, CariKart.Unvani FROM (_TakasCekleri  '+' LEFT JOIN CekKarti ON [_TakasCekleri].CekNo = CekKarti.CekNo) LEFT JOIN CariKart ON    CekKarti.MusteriKodu = CariKart.Musterikodu   ');
adoquery2.sql.add(' where ( [_TakasCekleri].islemtarihi >=:tarih1 and [_TakasCekleri].islemtarihi <=:tarih2 ) '+'  and ([_TakasCekleri].Vade BETWEEN :tarih3  and :tarih4)  and  (([_TakasCekleri.DeleteUser]="") Or ([_TakasCekleri.DeleteUser] Is Null))        ');
// Çek seçili ise
if combobox2.ItemIndex = 0 then  AdoQuery2.Sql.Add(' and ([_TakasCekleri.SenetSahibi] =""  or  [_TakasCekleri.SenetSahibi]  Is Null)  and ( [_TakasCekleri.CekNo] <>""  and  [_TakasCekleri.CekNo]  Is not  Null )  AND [_TakasCekleri.CekmiSenetmi] ="ÇEK" ');
//Senet Seçili ise
if combobox2.ItemIndex = 1 then  AdoQuery2.Sql.Add('   and  ( [_TakasCekleri.CekNo] =""   or  [_TakasCekleri.CekNo]  Is Null )  AND [_TakasCekleri.CekmiSenetmi] ="SENET"    ');
if combobox1.Text <> ''then
begin
AdoQuery2.Sql.Add(' and  [_TakasCekleri.TahsilDurumu]  like "'+combobox1.text+'%"  ');
end;
//if ComboBox1.Text <> ''  then     AdoQuery1.Sql.Add('and  MMkodu like "'+combobox2.text+'%"    ');
AdoQuery2.Parameters.Parambyname('tarih1').DataType := ftDate;
AdoQuery2.Parameters.Parambyname('tarih1').Value := datetimepicker6.date-1;
AdoQuery2.Parameters.Parambyname('tarih2').DataType := ftDate;
AdoQuery2.Parameters.Parambyname('tarih2').Value := datetimepicker7.date;
AdoQuery2.Parameters.Parambyname('tarih3').DataType := ftDate;
AdoQuery2.Parameters.Parambyname('tarih3').Value := datetimepicker1.date-1;
AdoQuery2.Parameters.Parambyname('tarih4').DataType := ftDate;
AdoQuery2.Parameters.Parambyname('tarih4').Value := datetimepicker2.date;
adoquery2.Sql.Add('order by  [_TakasCekleri.Vade]');
adoquery2.Open;
dbgrid1.Columns[0].Width:=80;      //   Çekno
dbgrid1.Columns[1].Width:=80;      //   İşlemTarihi
dbgrid1.Columns[2].Width:=170;      //   takasbank
dbgrid1.Columns[3].Width:=150;      //   takasşube
//dbgrid1.Columns[4].Width:=0;      //   çek banka
//dbgrid1.Columns[5].Width:=0;      //   çek şube
DBGrid1.Columns[4].Visible := false;   //
__________________
Soru Sormadan Önce:
http://forum.ceviz.net/announcement.php?f=27&a=55





Sigarayı BIRAKMANIN YOLLARI.......!
http://www.yesilay.org.tr/sigara_nasil_birakilmali.asp
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:27   #5 (permalink)
Kodlarım, Canlarım...
 
cemaliozan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Yer: » Delphi Bölümü «
Mesaj: 1,677
Varsayılan

Alıntı:
Caylaq, mesajından alıntı: Mesajı Gör
strtoDate
SQL yazarken strtoDate diye bir SQL fonksiyonu varmı ? Yoksa benim atladığım veya bilmediğim bir şeymi var ? Mümkünse açarmısın caylaq ?

PHP Kodu:
Var
    
Tarih  TDate;
  
begin
     Tarih  
:= StrToDate('12.12.1988'); // ki encode etmeden bu bile sağlıklı olmayabilir.
  
end
Bundan bahsetmiyorsun değil mi ?
__________________
Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler
Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin...
cemaliozan hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:27   #6 (permalink)
Üye
 
metali Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Mesaj: 117
Varsayılan

hocam ben bunların hepsini excel'den mysql'e aktarmıstım bu sırada bir dönüsüm mantıgını kuramamaıstım. o yuzden string kaldılar onlar. keşke strtodate('12/89') diye birşey olsa :P
__________________
metali hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:29   #7 (permalink)
Üye
 
metali Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Mesaj: 117
Varsayılan

myqsl kullanıyordum caylaq bunda ama komutlarından bişeyler cıkarmaya calısayım umarım işime yarayan bişeyler olur
__________________
metali hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:30   #8 (permalink)
Kodlarım, Canlarım...
 
cemaliozan Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 05/2005
Yer: » Delphi Bölümü «
Mesaj: 1,677
Varsayılan

İyide AdoQuery2.Parameters.Parambyname('tarih2').DataTyp e := ftDate;

Parametrenin tipi Date Alanın tipi Char ? Geç oldu ya birazda yaşlılık var pil bitti sanırım...
__________________
Haberbox | Tek Sevgi | Genel Seçimler | Magice Book | Yerel Seçimler
Yaşamaya Değer Bir Hayattan, Sevmeye Değer Bir Aşktan, Dostluğa Değer Bir Arkadaşlıktan Asla Vazgeçmeyin...
cemaliozan hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:33   #9 (permalink)
Üye
 
metali Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 01/2008
Mesaj: 117
Varsayılan

evet hocam sanrıım bunu direk kaynagından sql ile bişeyler yapmalıyım,

convert(datetime,'05/08/2004',101)

şöyle bişeyler buluyorum, ama tam kuramıyorum
__________________
metali hatta değil   Alıntı Yaparak Yanıtla
Eski 12/05/2008, 01:34   #10 (permalink)
Üye
 
Caylaq Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 12/2007
Yer: DELPHI LAND
Mesaj: 642
Varsayılan

Alıntı:
cemaliozan, mesajından alıntı: Mesajı Gör
SQL yazarken strtoDate diye bir SQL fonksiyonu varmı ? Yoksa benim atladığım veya bilmediğim bir şeymi var ? Mümkünse açarmısın caylaq ?

PHP Kodu:
Var
    
Tarih  TDate;
  
begin
     Tarih  
:= StrToDate('12.12.1988'); // ki encode etmeden bu bile sağlıklı olmayabilir.
  
end
Bundan bahsetmiyorsun değil mi ?


Yok Hocam ondan bahsetmiyorum elbette


Kod:
 
 AdoQuery1.SQL.add('TRANSFORM sum(Format([CariHareket.Tutar],''Currency''))  as Tutaar');
Cemali Hocam Transformla String bir ifadeyi Currency'e çevirip, fastreporta gönderebiliyorum. Kümülatif bakiye için

Kod:
 
KontrolQry.fieldbyname('Tarih').AsString // Format -> Asdate e çevirebiiriz
Bu dönüşüm zor değil ki

Metali Hocamın bir SQL yazmasına bakar.
Tüm Stringleri date çevierecek, tabloya yeniden yazdıracak.
__________________
Soru Sormadan Önce:
http://forum.ceviz.net/announcement.php?f=27&a=55





Sigarayı BIRAKMANIN YOLLARI.......!
http://www.yesilay.org.tr/sigara_nasil_birakilmali.asp
Caylaq hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
Sıralama AddNone PHP 3 02/09/2007 01:32
Sıralama Pippo Veritabanları & SQL 4 31/07/2006 00:16
SQL de sıralama selected Veritabanları & SQL 2 25/07/2006 11:55
Sıralama gorgpix Veritabanları & SQL 1 12/11/2005 20:45
sıralama teddmcload PHP 4 16/10/2004 15:30


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 08:40.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net