Access 2002 de tarih sıralama

Diğer veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
levottin
Üye
Mesajlar: 3
Kayıt: 12 Mar 2004 09:12

Access 2002 de tarih sıralama

Mesaj gönderen levottin »

Herkese Selam,

C++ Builder 6 kullanıcısıyım ve Access 2002 de tarih isimli bir sutuna sahip siparis isimli bir tablom var. Bu tabloda ne yaptıysam SQL sorgusu calistiramadim.. Sadece
Select * from siparis where tarih > Date() yazdığım zaman sorgu calisiyor...Bu sorguyu TADODataSet nesnesinin Commandtext bolumune yazdıgımda calisiyor...


Bunun dısında ne denediysem hep hata verdi.

Fakat asagidaki gibi calisma esnasinda atadigim kodlarin hicbiri calismiyor...(Parametre degerini false olarak set ettim)

Mesela

TADODataSet1->CommandText="Select * from siparis where ttarih <01.01.2004";

TADODataSet1->CommandText="Select * from siparis where ttarih <'01.01.2004' ";

TDate zaman=date();
TADODataSet1->CommandText="Select * from siparis where ttarih "+ zaman;


TDate zaman=date();
TADODataSet1->CommandText="Select * from siparis where ttarih "+ StrToDate(zaman);

Yardımlarınız icin simdiden tesekkurler...
Kullanıcı avatarı
MicroChip
Kıdemli Üye
Mesajlar: 1119
Kayıt: 02 Ağu 2003 01:02
Konum: İstanbul
İletişim:

Mesaj gönderen MicroChip »

merhaba normalde cevap veremiyorum ama kimse cevaplamamış cevap vereyim :)

Select * from siparis where tarih > Date() yazdığın zaman olur çünkü date de bir sql functionı.

not:hem delphide stringleri çift tırnak alamazsın

bu arada runtime anında şunu dene olduğunu göreceksin:

ADODataSet1.CommandText=
'Select * from siparis where ttarih >' +''''+StrToDate(zaman)+'''';

bu arada unutmadan tarih formatı ne ise ona göre gönder accese

Saygılar
Kafkas Kartalı Kabarday
Sitesi!= http://www.ahmetceylan.com
Resim
levottin
Üye
Mesajlar: 3
Kayıt: 12 Mar 2004 09:12

Mesaj gönderen levottin »

Öncelikle ilginize teşekkür ederim...

Ben C++ Builder kullanıcısıyım dolayısıyla stringler için tek degil çift tırnak kullanıyorum...

Sizin örneginizi builder icin denemistim hüsranla sonuclanmıştı.Tekrar düzenleyip denedim sonuc aynı oldu.

Fakat forumu biraz tarayınca parametre kullanarak sorunun çözülebildigini gördüm...

Yani sorunu hallettim tekrar teşekkür ederim...
Kullanıcı avatarı
mepc
Üye
Mesajlar: 191
Kayıt: 26 Eyl 2003 11:39
Konum: Ankara

Mesaj gönderen mepc »

kesin emin olmamakla birlikte (accesi en son 2 yıl önce kullandım)

acceste tarih sorgusu yaparken başına ve sonuna # karakteri koymak gerekiyor.

#01.01.2004#

Yanlış hatırlıyor olabilirim. Umarım işini görür.

Eğer çalışmazsa eski programları kurcalar sana cevap yazarım. Kolay gelsin
Kullanıcı avatarı
karflake
Üye
Mesajlar: 222
Kayıt: 15 Haz 2003 03:57

Mesaj gönderen karflake »

Merhaba.

Aynı sorunla Delphi'de ben de karşılaştım. Yazmaya çalıştığım programda AdoDataSet ile Access veritabanına bağlanıyorum. Veritabanında tarih/saat tipinde zaman isimli bir alan var. Ben bir edite girilen yıl'dan daha sonraki kayıtları görüntülemek için aşağıdaki kodu kullandım. Yukarıdaki cevapta da belirtildiği gibi, Access'deki tarih formatı için # kullanılıyormuş.

Kod: Tümünü seç

     try
       adtsbilgi.Close;
       adtsbilgi.CommandType:=cmdtext;
       adtsbilgi.CommandText:='SELECT * FROM bilgi WHERE zaman>'+'#1/1/'+edtarama.Text+'#';
        //ShowMessage(adtsbilgi.CommandText);
        adtsbilgi.Open;
     except
       ShowMessage('Aramada Hata Oluştu');
       adtsbilgi.Close;
       adtsbilgi.CommandText:='SELECT * FROM bilgi';
       adtsbilgi.Open;
     end;
İyi çalışmalar.
Cevapla