Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Çoklu Şarta Göre Sorgu  (Okunma sayısı 3968 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Çoklu Şarta Göre Sorgu
« : 08 Ekim 2005 18:58:11 »
bir programımda çoklu kritere  göre sorgulama yaptğımda aşağıdaaki gibi bir kod kullanırım.
Kod: [Seç]
DataModul.QryEvrak.Close;
DataModul.QryEvrak.SQL.Strings[0]:='select * from EVRAKS where 1=1';
if bsSkinEdit1.Text<>'' Then
DataModul.QryEvrak.SQL.Strings[1]:='and UPPER(AS_ADI_1)='+#39+formtyaz(bsSkinEdit1.Text)+#39
Else
DataModul.QryEvrak.SQL.Strings[1]:='';
if bsSkinEdit2.Text<>'' Then
DataModul.QryEvrak.SQL.Strings[2]:='and UPPER(AS_SOYADI_1)='+#39+formtyaz(bsSkinEdit2.Text)+#39
Else
DataModul.QryEvrak.SQL.Strings[2]:='';
if bsSkinEdit3.Text<>'' Then
DataModul.QryEvrak.SQL.Strings[3]:='and UPPER(TESYN_PLAKA)='+#39+formtyaz(bsSkinEdit3.Text)+#39
Else
DataModul.QryEvrak.SQL.Strings[3]:='';
if bsSkinDateEdit1.Text<>'  .  .    ' Then
DataModul.QryEvrak.SQL.Strings[4]:='and SIG_BT_TARIHI>='+#39+bsSkinDateEdit1.Text+#39
Else
DataModul.QryEvrak.SQL.Strings[4]:='';
if bsSkinDateEdit2.Text<>'  .  .    ' Then
DataModul.QryEvrak.SQL.Strings[5]:='and SIG_BT_TARIHI<='+#39+bsSkinDateEdit2.Text+#39
Else
DataModul.QryEvrak.SQL.Strings[5]:='';
if bsSkinDateEdit2.Text<>'  .  .    ' Then
DataModul.QryEvrak.SQL.Strings[6]:='and UPPER(KAYDEDEN)='+#39+formtyaz(bsSkinComboBox1.Text)+#39
Else
DataModul.QryEvrak.SQL.Strings[6]:='';
if bsSkinDateEdit2.Text<>'  .  .    ' Then
DataModul.QryEvrak.SQL.Strings[7]:='and UPPER(DUZENLEYEN)='+#39+formtyaz(bsSkinComboBox2.Text)+#39
Else
DataModul.QryEvrak.SQL.Strings[7]:='';
if bsSkinRadioGroup1.ItemIndex=1 then
DataModul.QryEvrak.SQL.Strings[8]:='Order By AS_ADI_1'
else
if bsSkinRadioGroup1.ItemIndex=0 then
DataModul.QryEvrak.SQL.Strings[8]:='Order By BLKODU'
else
if bsSkinRadioGroup1.ItemIndex=2 then
DataModul.QryEvrak.SQL.Strings[8]:='Order By AS_SOYADI_1'
else
if bsSkinRadioGroup1.ItemIndex=3 then
DataModul.QryEvrak.SQL.Strings[8]:='Order By TESYN_PLAKA'
else
if bsSkinRadioGroup1.ItemIndex=4 then
DataModul.QryEvrak.SQL.Strings[8]:='Order By SIG_BT_TARIHI';
IF bsSkinCheckRadioBox1.Checked THEN
DataModul.QryEvrak.SQL.Strings[9]:='DESC'
ELSE
DataModul.QryEvrak.SQL.Strings[9]:='ASC';
DataModul.QryEvrak.Open;


neden with do kullanmıyorsun diyenlere. ben with do sevmem sonra acces violation yapıyor :)
 formtyaz bu kriteri büyük harfe çeviren bir fonksiyonnndur. Bu fonksiyonuda sitede bulabilirsiniz.
Where 1=1  tabloya direk bir bağlantısı yok 1=1 olduğu için sadece And ifadesini aşmak için olmazsa olmaz bir formalite.
querynin sql özelliğine önceden ekleyeceğin satır kadar boş satır olacak. run-time de boş satır oluşturmak için
query1.sql.add('');
komutunu kullan.
clear kullanmana gerek yok çünkü direk satırlara erişip o satırı değiştiriorsun. diğer satırlar değişmiyor.
örneğin

Kod: [Seç]
select * from tablo
order by ADI


Burada
Kod: [Seç]
string[0]:='select * from tablo where 1=1' dersen querynin sql özelliği aşağıdaki değeri alır.
Kod: [Seç]
select * from tablo  where 1=1
order by ADI
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı sosyalpislik

  • Delphi 1 Level 5
  • *****
  • İleti: 49
  • Rep: +0/-0
  • Cinsiyet: Bayan
Ynt: Çoklu Şarta Göre Sorgu
« Yanıtla #1 : 07 Ağustos 2010 16:51:45 »
siz burda query kullanmışsınız..peki ben dataset kullanarak nasıl bu kdları yazabilirm.sonuçta dataset.sql yazılmıyor. muhetemelen çok basit bişeydir ama yeniyim kusura bakmayın.

Çevrimdışı Fatih

  • Emekli Yönetici
  • *****
  • İleti: 2.217
  • Rep: +43/-10
  • Cinsiyet: Bay
    • Delphi Dünyası
Ynt: Çoklu Şarta Göre Sorgu
« Yanıtla #2 : 07 Ağustos 2010 17:54:41 »
SQL özelliği yok, ama aynı işlevi gören SelectSQL özelliği var
Malulen emekli programcı / yazar. Bildiklerini unutmakta olduğundan size cevap veremez.

Çevrimdışı sosyalpislik

  • Delphi 1 Level 5
  • *****
  • İleti: 49
  • Rep: +0/-0
  • Cinsiyet: Bayan
Ynt: Çoklu Şarta Göre Sorgu
« Yanıtla #3 : 07 Ağustos 2010 20:44:54 »
ben selectsql'i bulamadm,yani çıkmıyor.. bunnla igli örnekler varmı?