Query'de bir kaç sorum var :(

Firebird ve Interbase veritabanları ve SQL komutlarıyla ilgli sorularınızı sorabilirsiniz. Delphi tarafındaki sorularınızı lütfen Programlama forumunda sorunuz.
Cevapla
sambaci
Üye
Mesajlar: 7
Kayıt: 24 May 2005 09:51

Query'de bir kaç sorum var :(

Mesaj gönderen sambaci »

selamlar arkadaşlar uzun etmeden konuya giriyorum...
1.sorum : LIKE deyimiyle alakalı şimdi databasede adı diye geçen bi alan var ve bir edit kutusuna yazılan bilginin karşılığını almak istiyorum...

Kod: Tümünü seç

SELECT * FROM DATA.DB 
WHERE ADI LIKE 'A%'
yazınca a ile başlayan isimleri gösteriyor burası tamam ama ben bu bilgiyi editten girmek istiyorum ve sonuna '%' işaretini eklemesini istiyorum...
eminim kolay bir yolu vardır ama ben bulamadım :(

2.sorum: şimdi bi kaç tane sorguyu yanyana yapmak istiyorum bunu where'den sonra and and diye mi devam ettiricem? mesela tarih sıralaması ve ada göre sıralama aynı anda olucak bunu nasıl hallederim?
mümkünse ufak bir kod yazabilirmisiniz?

3.sorum: bir sorun da boş bırakıldığı zaman yaşanıyor mesela editten belirliyorum parametrenin value değerini eğer edite gerekli bilgiyi girersem sorun çıkmıyor fakat boş bırakırsam hata veriyor bunu nasıl önlerim? yani boş bırakılırsa o parametreyi dikkate almasın yani ismi kısmı boş bırakılırsa bütün isimler için tarama yapılsın...

4.sorum: tarih sıralamasında >= yazınca o tarihden sonrasını algılıyor o tarihi de eklemesini istiyorum bunu nasıl halledebilirim? yarıca dikkat ettiğim bişey var

Kod: Tümünü seç

SELECT * FROM DATA.DB
WHERE KAYITTARIHI>= : KOD1 AND KAYITTARIHI<= :KOD2
dediğim zaman kod2ye girilen tarihi de dahil ederek sıralamayı yapıyor fakat kod1 e girilen tarihi dikkate almıyor mesela
kod1:01.01.2005 dersem sıralamaya 01.01.2005 i dikkate almadan başlıyor...

off baya uzun oldu bu soruların cevabını alırsam kendi adıma büyük ilerleme kaydetmiş olucam herekese cidden çok teşekkürler...
yerin kulağı vardır benim de kulağım var ben yer miyim yemem :)
Kullanıcı avatarı
Query
Üye
Mesajlar: 363
Kayıt: 29 Ara 2003 05:13

Mesaj gönderen Query »

Kod: Tümünü seç

'where ADI like ''' + edit1.text + '''%'''

Kod: Tümünü seç

'where ADI like ''' + edit1.text + '''%''' and SOYADI like ''' + edit2.text + '''' 


yada parametre kullanacaksın.

ii çalışmalar.
Uğur1982
Üye
Mesajlar: 383
Kayıt: 11 Mar 2005 03:18
Konum: İzmir

Mesaj gönderen Uğur1982 »

merhaba;

1-

Kod: Tümünü seç

SELECT * FROM DATA.DB
WHERE ADI LIKE '''+edit1.Text+'%''
2-

Kod: Tümünü seç

select * from CARIKART where AD='ali' and  KOD='A01' and Tarih Between '01.01.2001' and '01.01.2002'
İstediğin kadar ekleyebilirsin sorguna göre.iki değer arasını almak istediğinde Between metodunu kullan daha hızlıdır.

3-Hata vermemesi gerekir.Sadece kayıtı bulamaz.

4-

Kod: Tümünü seç

SELECT * FROM DATA.DB
WHERE KAYITTARIHI>= : KOD1 AND KAYITTARIHI<= :KOD2
Yukarıdaki kod;
kod1,kod2' ye girdiğin tarih değerleri arasındaki sonuçları verir.Onun yerine;

Kod: Tümünü seç

SELECT * FROM DATA.DB
WHERE KAYITTARIHI Between  :KOD1 AND :KOD2
kullanabilirsin.

iyi akşamlar...
sambaci
Üye
Mesajlar: 7
Kayıt: 24 May 2005 09:51

Mesaj gönderen sambaci »

selamlar arkadaşlar çok çok çok teşekkür ederim...
bir şey daha sorucam bu mesela edit1 e yazmadığım zaman hata vermemesi gerkir sadece kayıt bulamaz demişsiniz ben işte boş bırakıldığı zaman hepsini almasını istiyorum bu nasıl yapılır?
if elselerle mümkünmüdür? düşünceme göre
if edit1.text='' then begin normal kod else diğer kod yazılsa belki olabilir fakat bi kaç tane birden var bunları iflerle ayırıp yapmak cidden çok karışıtrmaz mı? neyse eve gidince biraz daha üstünde yoğunlaşıcam tekrar çok tesekkurler...Allah razı olsun...
yerin kulağı vardır benim de kulağım var ben yer miyim yemem :)
Kullanıcı avatarı
kadirkurtoglu
Üye
Mesajlar: 748
Kayıt: 22 May 2005 01:20
Konum: Uzakta Görünen Tepeden...

Mesaj gönderen kadirkurtoglu »

bu kodları edit in change olayına yazarsan dediğin sorun kendiliğinden düzelir. ama tablo sorgusuna close clear sonra select sonra open demelisin ki herdeafsında sorguya geçsin ve açsın kapatsın. yoksa editin içi boşaldığında liste görüntülenmeyecektir.

Kod: Tümünü seç

IBQuery1.Close;
IBQuery1.SQL.Clear;
IBQuery1.SQL.ADD('sorgu yapılacak ifade');
IBQuery1.Open
Kolay gelsin....
Bir mum, yanındaki mumları tutuşturmakla,
ışığında hiç bir şey kaybetmez.

Mevlana

OS win.10, IDE Delphi 10.3, RDBMS Firebird and MSSQL, BROWSER Chrome
Cevapla