Ölçüt ifadesinde veri türü uyuşmazlığı hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Ölçüt ifadesinde veri türü uyuşmazlığı hatası

Mesaj gönderen adnansirca »

Selamlar...

Projemde Adoquery ve Access veritabanı kullanıyorum...Tarih alanına göre yaptığım sorgulamada yukarıdaki hatayı veriyor..... Veritabanında dur_trh diye bir alanım var. özellğini kısa tarih olarak ayarladım.

Kod:
tarih.Date := Now+1;
veriler.Ana.Close;
veriler.Ana.SQL.Clear;
veriler.Ana.SQL.Add('SELECT *From ANA WHERE dur_trh = '''+DateToStr(tarih.Date)+'''');
veriler.Ana.Open;
tarih.Date := Now;

Hata sebebi ne olabilir.....
Saygılar....
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

acsessde kısa tarih olarak alanı tanımladığınızı belirtmişsiniz ve direk datetostr kullanmışsınız. Kısa tarih biçimi nasılsa veri tabanına da o şekilde göndermelisiniz.

tahih değişkenini sorgu nesnesine parametre olarak yüklemek işinizi kolaylaştırabilir.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

dur_trh adlı alanı paramet olarak belirledim...
kodu şöyle değiştirdim.
veriler.Ana.SQL.Add('SELECT *From ANA WHERE dur_trh = '''+tarih.text+'''');

aynı hatayı verdi....
mkysoft
Kıdemli Üye
Mesajlar: 3110
Kayıt: 26 Ağu 2003 12:35
Konum: Berlin
İletişim:

Mesaj gönderen mkysoft »

accsessdeki format sizin delphide gördüğünüz gibi olamayabilir. accsess programında nasıl görüyorsanız verileri, aynı şekilde girmelisiniz sql'e. bu şekilde bazen zor olarabilir parametre olarak da girebilirsiniz.
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Mesaj gönderen adnansirca »

sql e parametre olarak nasıl atabiliyorum...... Bu kısmı anlamadım....
adoquery nin params diye bu özelliği yok galiba....
adnansirca
Üye
Mesajlar: 135
Kayıt: 14 Kas 2005 12:24

Çözdüm

Mesaj gönderen adnansirca »

Kod:

var
tarih1 : String;
begin
tarih.Date := Now+1;
tarih1 := DateToStr(tarih.Date);
tarih1 := '#'+ AnsiReplaceStr(tarih1,'.','/') +'#';
veriler.Ana.Close;
veriler.Ana.SQL.Clear;
veriler.Ana.SQL.Add('SELECT *From ANA WHERE dur_trh = '+ tarih1 +'');
veriler.Ana.Open;
tarih.Date := Now;

teşekkür ediyorum...
Cevapla