Mega Code Archive

 
Categories / Delphi / Strings
 

[] Tquery

Delphi'de Veri Sorgulama işlemi TQuery kontrolü ile olur.TQuery kontrolüne ait SQL özelliği ; hem bir editör olarak ve hem de doğrudan SQL komutları yazılıp çalıştırılmak suretiyle kullanılan bir özelliktir.Şimdi Query1 kontrolüyle sorgulama işlemlerine başlayalım. Tüm Sütunları Listelemek Aşağıdaki örneği inceleyelim. Örnek :liste.dbf adlı veri tabanımız olsun. Bunu Query1 kontrolü ile sorgulayıp listelemek istiyoruz. Bunun için yapmamız gerekenler şunlardır.İlk önce formumuza Data Access kısmından Query1 bileşeni ile DataSource1 bileşeni yerleştirelim.DataSource1'in Dataset özelliğini Query1 yapalım.Daha sonra Data Controls kısmından formumuza DbGrid yerleştirelim ve Object Inspector'den DataSource özelliğini DataSource1 yapalım.Daha sonra Query1'in DataBaseName özelliğini alias olarak tanımlanan önceden oluşturduğumuz liste.dbf'yi seçelim.Sonra Query1'in SQL özelliğine gidip çıkan pencerede aşağıdaki SQL ifadesini yazalım. SELECT * FROM liste Sonra Query1'in Object Inspector'den Active özelliğini True yapalım ve programımızı F9'a basarak çalıştıralım.DbGrid'de görüleceği gibi liste.dbf'deki bütün bilgiler listenmiştir. İstenilen Sütunları Listelemek istenilen sütunlar listelenmek istenirse Query1'in SQL özelliğine şu SQL komutu yazılmalıdır. SELECT adi , soyadi , adresi FROM liste Not :liste.dbf adlı veri tabanımızdan sadece adi , soyadi , adresi adlı sütunlar ve bu sütunlardaki bilgileri listelemiş olduk. Tekrarlı Kayıtları Bir Defa Listelemek Bir tabloda bulunan aynı kayıtları bir kez listelemek için DISTINCT komutu kullanılır. Bunun için ; Query1'in SQL özelliğine şu SQL komutu yazılmalıdır. SELECT DISTINCT adi , soyadi , adresi FROM liste Şartlı Sorgulama yapmak istersek aşağıdaki gibi SQL komutu kullanmak gerekir. SELECT adi ,soyadi , adresi FROM liste WHERE adi = 'Bahadir ' Örnek1 : İsminin başharfi "B" ile başlayanları sorgulayalım.Aşağıdaki SQL komutunu inceleyiniz. SELECT DISTINCT adi ,soyadi , adresi FROM liste WHERE adi LIKE ',B%' Örnek2 : İki şartı aynı anda sağlama.Örneğimizi inceleyelim. SELECT DISTINCT adi ,soyadi , adresi , maas FROM liste WHERE ( adi = 'B%' and maas > 10000 ) iki şarttan biri gerçekleşmesi isteniyorsa yukardaki örnekte And yerine Or kullanılacak. Verileri Sıralamak Tabloda bulunan verileri A-Z'ye veya Z-A'ya sıralayabiliriz.Bunun için aşağıdaki örnekleri inceleyelim. Örnek1 : SELECT DISTINCT adi ,soyadi , adresi , maas FROM liste WHERE Order By adi ASC ( A-Z'ya sıralar ) Örnek2 :SELECT DISTINCT adi ,soyadi , adresi , maas FROM liste WHERE Order By adi DESC ( Z-A'ya sıralar ) Verileri Gruplandırmak Bir tabloda yer alan kişilerin farklı zamanlardaki yaptıkları işlerin miktarı gruplandırmak suretiyle tek bir tabloda listelenebilir.Bunun için Group BY komutunu kullanacağız. SELECT adi , soyadi ,SUM ( toplam_fiyat )Genel_toplam FROM liste Where fiyat = 'TL' GROUP BY adi Önemli Not :Şimdiye kadar Query1'in SQL özelliğine SQL komutları yazarak sorgulamalar yaptık.Şimdi kod penceresinde yazacağımız program koduyla veri sorgulayacağız. Örnek :Parametreye bağlı olarak veri sorgulaması procedure TForm1.Button1Click ( Sender : TObject ) ; // Button1 adlı butona kodumuzu yazıyoruz. begin Query1.Close ; Query1.ParamByNAme( ' Adi ' ).AsString := Edit1.Text ; Query1.Open ; end ; Sütun Sorgulama Bunu yaparken DataSource1 'in DataSet özelliğini Query1 ; Query1'in DataBaseName özelliğini veri tabanınız ( bizim örnekte liste.dbf ) ; DBGrid1 ' in DataSource özelliğinide DataSource1 yapınız. Örnek : procedure TForm1.Button1Click ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add(' Select adi , soyadi , adresi , maas From liste ' ) ; Query1.Open ; end ; Programımızı çalıştırıp Button1'e tıkladığımız zaman DBGrid'de istediğimiz bilgilerin listelendiğini görürüz. Ekleme Sorgusu Formumuza Button1 koyalım .Caption özelliğine Ekle yazalım.Ekle butonuna aşağıdaki kodları yazalım.( formumuza Query1, DataSource1 ve DBGrid1 yerleştirilmiş varsayıyorum.) procedure TForm1.EkleClick ( Sender : TObject ) ; begin Query1.SQL.Add ('INSERT into liste ' ); Query1.SQL.Add ( ' (ADI , SOYADI ) ' ) ; Query1.SQL.Add ( 'values (" Bahadir " , " Sahin " ) ' ) ; Query1.ExecSQL ; end; Not : Programı çalıştırıp Ekle butonuna bastığımız zaman kodda yazmış olduğumuz Bahadir Sahin' i veri tabanına ekler. Veri Güncellemek Tablomuzda bulunan verilerimizi güncellemek için UPDATE' i kullanacağız.Bunun için Formumuza Button1 koyalım .Caption özelliğine Güncelle yazalım.Güncelle butonuna aşağıdaki kodları yazalım. procedure TForm1.GuncelleClick ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add ( ' UPDATE liste set maas = 10000 where ADI = ' Bahadir ' ) ; Query1.ExecSQL ; end ; Veri Silme Sorgusu procedure TForm1.SilClick ( Sender : TObject ) ; begin Query1.SQL.Clear ; Query1.SQL.Add ( ' Delete from liste where ADI = ' Bahadir ' ) ; Query1.ExecSQL ; end ;