Tweet

TQuery Veri Sorgulama

TQUERY KONTROLÜ İLE VERİ SORGULAMA

Delphide veri sorgulama işlemi TQuery kontrolü ile yapılır.TQuery kontrolüne ait SQL özelliği; hem bir editör olarak hemde doğrudan SQL komutları yazıp çalıştırmak suretiyle kullanılan bir özelliktir.Query1 kontrolüyle sorgulama şu şekilde olur..Sırasıyla gidiyoruz..
Tüm Sütunları Listelemek[...]
Liste isminde bir veritabanına sahip olduğumuzu varsayalım..Bunu Query1 kontrolü ile sorgulayıp listelemek istiyoruz.Yapmamız gereken ise şudur;
Formumuza DataAccess kısmından Query1 bileşeni ile DataSource1 bileşeni yerleştiriyoruz.
DataSource1 bileşeninin DataSet özelliğini Query1 yapıyoruz.Data Controls kısmından formumuza DbGrid yerleştiriyoruz ve Object Inspector penceresinden Data Source özelliğini DataSource1 yapıyoruz.Query1 in DataBaseName özelliği alias olarak tanımlanan önceden oluşturduğumuz Liste.dbf yi seçiyoruz.Query1 in SQL özelliğine giderek açılan pencerede yazacağımız sorguyu belirtiyoruz;

CODE:
SELECT * FROM liste

Daha sonra Query1 in Active özelliğini True yaparak F9 ile debug ediyoruz.
Çalıştırdığınızda görebileceğiniz liste veritabanındaki tüm sütunların listelendiğidir..

İstenilen Sütunları Listelemek

İstenilen sütunlar,yani sadece ihtiyacımız doğrultusunda listelemek istediğimiz sütunları belirtmek için Query1 in yine SQL özelliğine yazacağımız sorgu şu şekilde olacak;

CODE:
SELECT adi,soyadi,adresi FROM liste

Liste veritabanından sadece adi,soyad,adresi isimlerindeki sütunları listelemiş olduk..
Tekrarlı Kayıtları Bir Defada Listelemek
Bir tabloda bulunan aynı kayıtları bir kez listelemek için DISTINCT komutunu kullanırız.Bunun için Query1 in SQL özelliğine yazacağımız sorgu şu şekilde;

CODE:
SELECT DISTINCT adi,soyadi,adres FROM liste

Şayet şartlı sorgulama yapmak istersek ;


CODE:
SELECT DISTINCT adi,soyadi,adres FROM liste Where adi LIKE ',B%'

İki şartı aynı anda sağlamak istediğimiz durumlarda ise;


CODE:
SELECT DISTINCT adi,soyadi,adresi,maas FROM liste WHERE (adi='B%' and maas>10000)

Bu durumda bir hatırlatma yapalım : Eğer iki şarttan biri veya diğeri gerçekleşsin diyorsak parantez içinde kullanılan and işlevi yerine OR (yada) kullanılır..
Verileri Sıralamak
Tabloda bulunan verileri A-Z ' ye veya Z-A 'ya sıralamak mümkündür.
Örnek olarak;


CODE:
SELECT DISTINCT adi,soyadi,adresi maas FROM liste WHERE Order By adi DESC(Z-A'ya sıralıyoruz)



CODE:
SELECT DISTINCT adi,soyadi,adresi maas FROM liste WHERE Order By adi ASC(A-Z'ye sıralıyoruz)


CODE:
Verileri Gruplandırmak


Bir tabloda yer alan kişilerin farklı zamanlardaki yaptıkları işlerin miktarı gruplandırmak suretiyle tek bir tabloda listelenebilir.Kullanacağımız komut ise Group BY komutu olacaktır..


CODE:
SELECT adi,soyadi, SUM(toplam-fiyat)Genel-Toplam FROM liste WHERE fiyat = 'TL' GROUP BY adi

Bu bilgilerin ardından kod içinde kullanımlarına geçelim..
CODE:
Parametreye Bağlı Olarak Veri Sorgulama

Ayrıntılara fazla takılmadan kullanımlarını yazacağım.Yukarıda kullanımların ne işe yaradıklarından bahsetmiştik..


CODE:
procedure TForm1.Button1.Click (Sender : TObject); // Button1 isimli butonumuzun kodlarını yazalım..
begin
Query1.Open;
Query1.ParamByName ('Adi').As String;=Edit1.Text;
Query1.Close;
end;

Sütun Sorgulama
DataSource1 in DataSet özelliğini Query1; Query1 in DataBaseName özelliğini Liste.dbf ; DBGrid1 in DataSource özelliğini ise DataSource1 yapalım..
Örnek :


CODE:
prucedure TForm1.Button1 Click(Sender : TObject);
begin
Query 1.SQL.Clear;
Query1.SQL.Add ('Select adi,soyadi,adresi,maas From liste');
Query1.Open;
end;

Burada yaptığımız ise form üzerine yerleştirdiğimiz butona tıklandığında DBGrid de istediğimiz bilgilerin listelenmesini sağladık..
Ekleme Sorgusu
Formumuza Button1 koyalım.Caption özelliğine Ekle yazabiliriz.Ekle butonuna yazacağımız kodlar aşağıdadır.Ancak Forma sizin DataSource1 ve DBGrid1 eklediğiniz varsayıyorum.Bu standart olacka bu işlemlerimizde..


CODE:
procedure TForm1.EkleClick (Sender : TObject);
begin
Query1.SQL.Add('INSERT into liste');
Query1.SQL.Add('(Adi,Soyadi)');
Query1.SQL.Add('Values("oguz", "thecoders")');
Query1.EexecSQL;
end;

Burada yaptığımı kısaca Ekle ismini verdiğimiz butonumuza tıkladığımızda veritabanına oguz thecoders verisini ekleyecektir..
Verilerin Güncellenmesi
Tablomuzda bulunan verilerimizi güncellemek isteyebiliriz.Bunun için UPDATE komutunu kullanacağız.
Şimdi formumuza bir buton koyalım.Caption özelliğine Güncelle yazabiliriz.İsterseniz başka isimler verebilirsiniz..Butona yazacağımız kodlar;
Kod:

CODE:
Query1.SQL.Clear;
Query1.SQL.Add('UPDATE liste set maas =1000 where ADI='oguz');
Query1.SQL.ExecSQL;
end;

Veri Silme

CODE:
procedure TForm1.Sil Click (Sender : TObject);
begin
Query1.SQL.Clear
Query1.SQL.Add('Delete from liste where ADI ='oguz');
Query1.EexecSQL;
end;

Delete komutu ile de veritabanındaki ADI altındaki oguz verisini silmiş olduk.Ekleme ve Update işlemlerindeki mantıkla aynıdır.


Oguzz
oguz@thecoders.net
21 Eylul 2007 20:20

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg