USLANMAM
USLANMAM öğesini iGoogle sayfanıza ekleyin.
UslanmaM En Kaliteli Bilgi Adresiniz
Geri git   USLANMAM > PROGRAM > PROGRAMLAMA DİLLERİ > Programlama > Delphi
Google
 
UslanmaM Resim AlbümleriSosyal Gruplar
Kayıt ol Sosyal Gruplar Ajanda Konuları Okundu Kabul Et

Yeni Konu aç  Cevapla
 
LinkBack Seçenekler Stil
Alt 11-26-2007, 09:54 AM   #1 (permalink)
*BUNALIMLARIN ADMİNİ*
 
BoDyGuArD - ait Kullanıcı Resmi (Avatar)
Post Veri Sorgulama

Veri Sorgulama
TQuery Kontrolü İle Veri Sorgulama
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 )
İki ş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 ;
Parametreye Bağlı Olarak Veri Sorgulama
procedure TForm1.SorguClick ( Sender : TObject ) ;
begin
Query1.SQL.Clear ;
Query1.SQL.Add('Select ADI SOYADI from liste Where ADI =:a') ;
Query1.ParamByName ('a').AsString := Edit1.Text;
Query1.Open;
end;
Borland Delphi'de QReport Bileşenleri ile Rapor Hazırlama
Daha önceki bölümlerde veri tabanını nasıl oluşturduğumuzu ve bu veri tabanına yazmış
olduğumuz verileri nasıl sorgulayıp listelediğimizi görmüştük. Şimdi ise yapmış olduğumuz
işlerin meyvesini almaya geldi. Nasıl mı? Tabiki QReport ile...QReport ile Printer'dan çıktı
alabiliriz. Şimdi QReport'un özelliklerini inceleyelim.
· Bölüm ( Band ) yapısına dayanan rapor üretici
· QReport bileşenleri ile görsel rapor tasarımı
· Rapor çıktısı verme
· Anında önizleme imkanı
· Limitsiz Memo alanları
· Limitsiz Grup sayısı
· Karmaşık rapor tasarımı
· İsteğe uyarlanabilir rapor tasarımı
· Yazdırılabilir grafik formatları
· Geliştirilmiş hesap ifadeleri
· Tam yazıcı kontrolü vb.diğer özellikler...
Şimdi adım adım Rapor oluşturmaya başlayalım. Bir rapor formu en basit aşağıdaki bileşenlerden
meydana gelir.
DataSet ( TTable ) elemanı
QuickReport ( TTable ile bağlantılı )
QuickReport üzerine alınan QRBand bileşeni
TQuickRep elemanının Bands özelliği altındaki HasDetail özelliğinin True yapılması
Detail bölümü üzerine yazılabilir TQRDBText elemanı
Bunları öğrendikten sonra raporumuzu hazırlamaya devam edelim. İlk önce Formumuza
Data Access kısmından TTable kontrolünü yerleştirelim. Table1'in Object
Inspector'ündeki DatabaseName özelliğini oluşturduğumuz aliası ( Ben liste.dbf oluşturdum.
Sizde oluşturduğunuz veri tabanını seçin.) seçelim. TableName 'de veritabanının ismini
seçelim. Table1'in Active özelliğini True yapalım. Sonra QReport kısmından
QuickRep1 elemanın yerleştirelim ve DataSet özelliğini Table1 yapalım. Daha sonra Bands
özelliğine tıklayıp HasDetail özelliğini True yapalım. Bu işlem ile form üzerine veri alanlarının
yer alacağı bölümü eklemiş olduk. Şimdi bir örnek yapalım.
Örnek: Yukarıdaki işlemleri gerçekleştirdikten sonra QReport kısmından 5 adet QRDBText
kontrolü alıp Details kısmına yerleştirelim ve herbir QRDBText'in Dataset özelliğini Table1
ve DataField özelliğinide liste.dbf'de bulunan sütun alanlarından birini seçelim ( Mesela
ADI SOYADI ADRESI ). Basit bir rapor yapmış olduk. Şimdi tasarım zamanındaki raporu
görebilmek için QuickRep1'in üzerindeyken Mouse'ın sağ tuşuna tıklayalım. Karşımıza bir
menü çıkar. Şimdi bu menüdeki özellikleri inceleyelim.
Report Setting: Tasarım zamanı rapor ile ilgili ayarların yer aldığı pencereye ulaşılır.
Zoom in: Tasarım zamanında rapor üzerindeki bileşenler daha büyük gösterilir.
Zoom Out: Tasarım zamanında rapor üzerindeki bileşenler daha küçük gösterilir.
Rotate Band View: Rapor üzerinde yer alan bileşenlerin yerleri değiştirilir.
Hide Bands: Bu özellikle bileşenler gizlenir.
Reset: Gizlenen bölümleri tekrar gösterir.
Preview: Bu özellik; Raporumuzun ekran görüntüsünü çıkarır.
Raporla İlgili Ayarlar
Tasarım zamanında raporla ilgili ayarların yapılabilmesi için QuickRep1'e sağ tıklanır. Açılan
menüde Report Setting seçeneği seçilir. Açılan menüde ;
Paper Size: Kağıdın tipi belirlenir.
Length: Sayfa uzunluğu belirlenir.
Width: Sayfa genişliği belirlenir.
Margins: Kenarlarda bırakılacak boşluk miktarı belirlenir.
Column Space: Sütun genişliği belirlenir.
Number of Column: Sütun sayısı belirlenir.
Other: Bu kısımda raporda kullanılacak font adı büyüklüğü ve ölçü birimi ayarlanır.
Page Frame: Bu bölümde ise rapor önizleme modunda iken gözükecek çerçeveler çerçevenin
rengi kalınlığı ayarlanır.
Bands: Rapora eklenecek bölümler ( Band ) seçilir.
Page Header: Rapora Sayfa Başlığı verilir.
Title: Başlık girilir.
Column Header: Sütun başlıkları girilir.
Detail Band: Veri alanlarının yer aldığı bölümdür.
Page Footer: Sayfanın altında yer alan sayfa alt bilgilerini ekler.
Summary: Raporla ilgili ek açıklamaları ekler.
Çalışma Anında Rapor Önizleme
Bunun için şu işlemleri yapınız. İlk önce Formumuza bir Button ekleyin ve bu button1'in
Caption özelliğine Raporla yazınız. Daha sonra butonun OnClick kısmına aşağıdaki kodu
yazınız.
Procedure TForm1.RaporlaClick ( Sender : TObject ) ;
begin
QuickRep1.Preview ;
end;
Programı çalıştırıp Raporla butonuna bastığımız zaman raporumuzun ekran görüntüsü
karşımıza gelir.
Not: Kayıtları direk yazıcıya göndermek istiyorsak Butonun OnClick olayına şu kodu yazacağız.
QuickRep1.Print ;
Wizard Kullanarak Rapor Hazırlama
· File / New Aplication 'u seçin.
· File / New menüsünden Business kısmına geçiniz. Buradan QuickReport Wizard
seçeneğini seçiniz. Sonra Ok düğmesine basınız.
· Çıkan pencerede Start Wizard düğmesiyle bir sonraki adıma geçelim.
· Alias or Directory kutusunda bağlantı kuracağımız veritabanının bulunduğu dizini
seçiyoruz. Table Name kısmınada veri tabanımızın ismini seçiyoruz.
· Tablo seçildikten sonra; tablomuzda yer alan sütunlar görülecektir. Raporda bulunmasını
istediğimiz alanları belirleyip > veya hepsini seçersek >> tuşuyla sağ taraftaki
listeye alalım ve bu işlemi bitirdikten sonra Finish düğmesine basalım. Böylece
Wizard kullanarak otomatik olarak raporumuzu oluşturmuş bulunuyoruz.
Veri Süzmek ve Sıralamak
QuickReport; verileri sıralayacak herhangi bir özelliğe sahip değildir. Veriler girildikleri sırada
basılırlar. Veri tabanı içindeki veri alanlarının index olarak tanımlanması gerekir. Bu
işlemden sonra TTable elemanının IndexName özelliği ile belirtilmesi gerekir. TQuery
elemanıylada istenilen şekilde verileri süzmek mümkündür. Veri süzme birkaç şekilde yapılır.
TTable.Filter özelliği bir süzme koşulu ekler. Bu sırada TTable.Filtered özelliği True
olması gerekir. Diğer yol SQL kullanılarak istenilen kayıtları elde etmektir. Bir diğer seçenek
ise Detail bandının PrintEvent olayını kullanmaktır.
Sayfa Büyüklüğü ve Kenar Boşluklarını Ayarlama
Bunun için QuickRep1 elemanının Page özelliğine tıklanarak açılan alt özellikler aracılığıyla
rapor tasarımında kullanılacak olan sayfanın büyüklüğü ve kenar boşlukları kolay bir şekilde
ayarlanır.
Not: QuickRep1'in içinde varsayılan yazı tipleri seçilebilir. Bunun için Font özelliğine tıklanması
gerekir. Burada font adı tipi rengi fontun altı veya üstü çizili olma durumu
ayarlanabilir.
Rapor Başlığı
Rapor tanımlama QuickReport'un Description özelliği ile yapılır. Bu seçeneği tıklayalım ve
açılan pencereye raporla ilgili bilgileri girelim. Bir rapor başlığı TQRSysData elemanı aracılığıyla
yazdırılabilir. Başlık aşağıdaki kodla oluşturulabilir.
Örnek rocedure TForm1.Button1Click(Sender :TObject ) ;
begin
with QuickRep1 do
begin
Report Title := ' Personel Bilgisi Raporu ' ;
Bands.HasTitle := True ;
with TQRSysData ( Bands.TitleBand.AddPrintable ( TQRSysData ) ) do
begin
Data := qrsReportTitle ;
AlignToBand := true ;
Aligment := taCenter ;
end ;
Preview ;
end ;
end ;
Bir Rapora Bölüm Eklemek
Bir rapora bölüm eklemek için Object Inspector penceresinden TQuickRep elemanına ait
Bands özelliğine tıklamak ve çıkan alt bölümdeki özelliklerin değerini true yapmaktır.
Quick Report'ta Kullanılan Operatörler
Operatör Açıklama
+ Toplama
- Çıkarma
* Çarpma
/ Bölme
( ) Paranaaa
And Mantıksal And
Or Mantıksal Or
Not Mantıksal Not
= Eşit
< Küçük
> Büyük
<= Küçük eşit
>= Büyük eşit
< > Eşit değil
QuickReport Fonksiyonları
Date: Mevcut tarihi string olarak geri gönderir. Rapor üzerine QRExpr elemanı alınarak
Expression özelliğine Date verilerek kullanılır.
Time: Mevcut saati stringe çevirir. Rapor üzerine QRExpr elemanı alınarak Expression
özelliğine Time verilerek kullanılır.
Str ( sayı ): Sayısal bir ifadeyi stringe çevirir.
Copy(strsl): Bir ifadenin içinde bulunan belli bir bölümü geri gönderir.
Rapora Sayfa Numarası ve Tarih Eklemek
Raporumuza sayfa numarası ve tarih eklemek için; rapor üzerine QRB elemanı alarak
BandType özelliğini rbPageFooter yapalım. Daha sonra QRSYSData kontrolünden iki tane
alıp birincisinin Data özelliğini qrsDate ve Text özelliğine "Basım Tarihi " ikincisinin Data
özelliğini qrsPageNumber ve Text özelliğini de " Sayfa : " yapalım. Raporu Preview'e tıklayarak
önizlemeye alırsak sayfanın sonunda Basım Tarihi ve Sayfa Numarasının yazılmış olduğunu
görürüz.
Delphi ile MS Access Database'ine Bağlantı
Delphi'den MS Access Databaseine ulaşabilmek için sırasıyla yapılması gerekenler aşağıdaki
gibidir:
1. Windows Control Panel'i açın.
2. ODBC simgesini çift tıklayın.
3. User DSN tabına gelin ve Add butonuna basın.
4. Driver olarak "Microsoft Access Driver (*.mdb)" yi seçin ve Finish butonuna basın.
5. Data Source Name'i olarak kullanmak istediğiniz bir isim verin. Description kısmına
isterseniz database'inizle ilgili bir açıklama yazabilirsiniz.
6. Daha sonra Select butonuna basarak database isminizi verin.
7. Advanced butonuna basarak kullanıcı adı ve şifresi tanımlayabilirsiniz. ( Zorunlu değil )
8. OK butonuna basıp ODBC ekranını kapatın.
9. Şimdi programınıza bir TDatabase objesi ekleyin.
10. AliasName olarak ODBC ayarlarında verdiğiniz (5) Data Source Name'i seçin.
11. Database Name olarak istediğiniz bir isim yazın.
12. Eğer 7. basamakta bir kullanıcı adı ve şifresi girmediyseniz login ekranın çıkmaması
için LoginPrompt seçeneğini false yapın.
Not: Eğer database'in bir kullanıcı adı ve şifresi varsa LoginPrompt seçeneğini False yapmanız
durumunda database'e ulaşamazsınız.
13. Programınıza bit TTable ekleyin.
14. Database Name kısmına TDatabase bileşeninde Database Name kısmına 11. adımda
verdiğiniz ismi seçin.
15. Programınıza bit TDataSource ekleyin.
16. DataSet değeri olarak 13. adımda eklediğiniz TTable adını verin.
Artık MS Access Database'ine bağlı bir table'a sahipsiniz.

BoDyGuArD isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla

Alt 01-22-2008, 07:29 PM   #2 (permalink)
Çavuş
Standart

arkadaşım eline sağlık güsel olmuş senden ricam videolu anlatım eklemendir teşekkürler
royiv24 isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Alt 04-15-2008, 03:27 PM   #3 (permalink)
Yeni Üye
Standart

coook güzel olmuş
fati şahin isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
Cevapla


Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir)
 
Seçenekler
Stil

Yetkileriniz
You may not post new threads
You may not post replies
Eklenti Ekleyemezsiniz
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık
Gitmek istediğiniz klasörü seçiniz