query veya ado ile sorgu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
serk@n
Üye
Mesajlar: 26
Kayıt: 11 Eki 2003 08:05

Mesaj gönderen serk@n »

Kod: Tümünü seç

 var 
Tarih1, Tarih2 : TDate; 

begin 
query1.sql.clear; 
query1.sql.add('Select * from Raporlar2'); 
query1.sql.add('Where İNC_TARİHİ Between :TARIH1 and :TARIH2 and İZ_DURUMU=:İZ_DURUMU'); 
query1.parambyname('TARIH1').asdate :=strtodate(edit1.text); 
query1.parambyname('TARIH2').asdate :=strtodate(edit2.text); 
query1.ParamByName('İZ_DURUMU').AsString :=edit3.Text; 
Query1.Open; 
aynı şekilde yukarıdaki sorgulamayı ben de yapmak istiyorum fakat hata veriyor...
access databe kullnıyorum...
tarih alanım var
hata: undeclared identifier 'paramname' ?
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

ParamName kısımların da türkçe karakter kullanmışsınız bu problem kaynağı olabilir.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
serk@n
Üye
Mesajlar: 26
Kayıt: 11 Eki 2003 08:05

Mesaj gönderen serk@n »

:( ordaki kodu forumdaki örnekten kopyaladım kendi kodum da turkce karakter yok... sorun aslında

query1. 'dan sonra paramname gelmiyor. paramname gelmesi için uses kısmına birşeyleri eklemem gerekiyormu?...
DotCom
Kıdemli Üye
Mesajlar: 1696
Kayıt: 11 Tem 2003 10:30
Konum: İzmir
İletişim:

Mesaj gönderen DotCom »

Hayır Birşey Eklemeniz Gerekmez.

Kod: Tümünü seç

Select * From Table_Name Where tarih>=:tarih_ilk and tarih<=:tarih_son 
query1.params[0].asdate:=strtodate(edit1.text); 
query1.params[1].asdate:=strtodate(edit2.text); 
Birde yukarıdaki şekilde denermisiniz ? hata veriyor ise verdiği hatayı söylerseniz...

Kolay Gelsin
serk@n
Üye
Mesajlar: 26
Kayıt: 11 Eki 2003 08:05

Mesaj gönderen serk@n »

oylede olmuyor...

adoquery1. 'diyorum noktadan sonra query1 in özelliklerinde yada fonksyonlarında paramname yada params[] çıkmıyor...
parameters diye bir şey var sadece...

şöyle bir hata veriyor...

undeclared identifier 'paramname'
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

Bendede paramname hatası verirdi ama hata yazısı içiunde İZDURUMU gibi alan adını verir ve bulunamadığını belirtirdi. burada tarih alanlarından hariç olan girdiler için yani string alanlar için where de

alanadı=:alanadı şeklinde yazınca iş düzeliyordu.

belki form üzerine herşeyi koymamışsınızdır veya alanları tanımıyordur tablo adını tam girmemişsinizdi. yoksa query1. deyince paramname çılıyor.

acemiden acemice cevap
iyi çalışmalar
serk@n
Üye
Mesajlar: 26
Kayıt: 11 Eki 2003 08:05

Mesaj gönderen serk@n »

bde bileşenleri içindeki queryi koyuyorum form uzerine o zaman
parambyname geliyor fakat adoquery koyduğum zaman yok....
:(
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7601
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Ado'da parametreler şu şekilde kullanılıyor :

AdoQuery1.Parameters.ParamByName('PARAMETRE').Value := ...

Kolay gelsin.
Kullanıcı avatarı
bobasturk
Kıdemli Üye
Mesajlar: 1387
Kayıt: 20 May 2004 08:39
Konum: Düzce

Mesaj gönderen bobasturk »

benim çalışma için yapılan sorgulamayı kullanıyorsan aynısı ile kodların yazılışı bde deki query ye göre ado için kodlama değişebilir. hata buradan olabilir. ustalarımız bu konuda sana yardımcı olurlar

iyi çalışmalar.
serk@n
Üye
Mesajlar: 26
Kayıt: 11 Eki 2003 08:05

Mesaj gönderen serk@n »

mustafa hocamın belğirttiği gibi kullanılıyormuş ADO 'da...
Teşekkürler...
Kullanıcı avatarı
sairalper
Üye
Mesajlar: 23
Kayıt: 15 May 2007 04:54
Konum: Bursa
İletişim:

Mesaj gönderen sairalper »

konu epey eski ama ben de bir noktaya takıldım:

ADOQuery içindeki kod bu:

Kod: Tümünü seç

SELECT  Tarih FROM Tablo_gunluk 
 WHERE (gunluk_id=:gunluk_id1)
 AND (Tarih >= :Tarih1)
 AND (Tarih <= :Tarih2)  
order by Tarih Desc
çalışmasındaki sorun şu:
>= dememe rağmen ilk tarihi sorguya dahil etmiyor... Tarih alanı string idi, belki ondandır deyip Date yaptım ama yine aynı...

yani, 01.10.2007 -10.10.2007 tarih aralığı verdiğimde 1 ekim tarihlileri göstermiyor :(

ne tavsiye edersiniz?
Alper Şirvan
Şair, yazar, ressam.. 3 kitabı var...
Yazılımcı... Kamuda memur...
Galatasaray'lı... Spor aşığı...
Güneş Enerjili Tekerlekli Sandalyenin
Fikir Babası...
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

veri tabanı mssql ise tarih formatından kaynaklanabilir.
yada tarih alanında sadece tarih mi var yoksa saatte varmı?
saat de varsa o da sıkıntıya sebep olabilir.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

veritabanını bilmiyorum ama between kullansanız.

Kod: Tümünü seç

where tarih between 'alanım' and 'alanım'
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Kullanıcı avatarı
sairalper
Üye
Mesajlar: 23
Kayıt: 15 May 2007 04:54
Konum: Bursa
İletişim:

Mesaj gönderen sairalper »

konu başlığı ve içerik ado ve access olunca belirtmedim.
access veritabanı ve Tarih alanı... delphi2005 ile yazıyorum.
between denedim ama access problem çıkardığıı için diğer türlü yaptım zaten. bu tip işlerde genelde between kullanırım...
bugün biraz daha kurcalıyacağım bakalım... işin kötüsü ardı ardına 2-3 sorgu yapınca yapmaz oluyor... mesela, Tarih aralığı 01.ekim-10.ekim arası diyelim. sonraki sorgularda bu tarihlerden önceki kayıtları da getiriyor...
Alper Şirvan
Şair, yazar, ressam.. 3 kitabı var...
Yazılımcı... Kamuda memur...
Galatasaray'lı... Spor aşığı...
Güneş Enerjili Tekerlekli Sandalyenin
Fikir Babası...
Kullanıcı avatarı
conari
Üye
Mesajlar: 2102
Kayıt: 27 Nis 2006 03:10
Konum: İstanbul & Gebze Karışık

Mesaj gönderen conari »

accesde önceden yazdığım bir sorgu,
Ay ile gün veritabanında normal olmasına ragmen sorguda ay/gün/yıl olarak istiyordu bende uğraşmayım dedim kendimce böle bir yöntem geliştirmiştim.

uses DateUtils

Kod: Tümünü seç

var
tarih1, tarih2 :String;
ay1,ay2,gun1,gun2,yil1,yil2:integer;
begin
ay1:=MonthOf(DateTimePicker1.Date);
gun1:=DayOf(DateTimePicker1.Date);
yil1:=YearOf(DateTimePicker1.Date);
ay2:=MonthOf(DateTimePicker2.Date);
gun2:=DayOf(DateTimePicker2.Date);
yil2:=YearOf(DateTimePicker2.Date);
tarih1:='#'+IntToStr(ay1)+'/'+IntToStr(gun1)+'/'+IntToStr(yil1)+'#';
tarih2:='#'+IntToStr(ay2)+'/'+IntToStr(gun2)+'/'+IntToStr(yil2)+'#';
SayQuery.Active:=False;
SayQuery.SQL.text:='SELECT  count (TBLISTEK_ANA.TARIH)  FROM TBLISTEK_ANA '+ 
' WHERE TBLISTEK_ANA.TARIH between '+tarih1+' And '+tarih2+';';
Bir kelimenin anlamını öğretsen bile yeter..
ResimResim
Cevapla