19 Şubat 2014 Çarşamba

Delphi XE5 - ClientDataSet Oluşturma ve Yönetme


    Delphi'nin kendi içinde hazır olarak gelen ClientDataSet, küçük veriler için oldukça kullanışlı bir veritabanı olanağı sunuyor. Tabi burada küçükten kastımız çok ta küçük değil. Milyonluk veriler olmasa da binlik veriler için iş görür nitelikte. Bu yazıda ClientDataSet nasıl oluşturulur ve yönetilir göstermeye çalışacağım. Daha fazla sıkmadan bu blogun en güzel özelliklerinden olan resimlerle anlatım kısmına geçelim.



ClientDataSet Nasıl Oluşturulur?

Data Access kısmından bir adet ClientDataSet bileşeni ve DataSource ekleyelim ilk önce, daha sonrada verileri görmemizi ve girmemizi sağlayacak dbgrid,dbnavigatör, dbedit ve dbcontrol bileşenlerini Data Controlden ekleyelim. Küçük bir rehber uygulaması yaparak iyice pekiştirelim.

Rehber uygulaması için gerekli olan bileşenler:
1. adet clientdataset
1. adet dbnavigatör
1. adet dbcombobox
3. adet dbedit


    ClientDataSete iki kez tıklayalım ve gireceğimiz verleri, tiplerini ve boyutlarını girmeye başlayalım. Tıkladıktan sonra çıkan ekranda Ctrl + N kısayolunu yada sağ tıklayarak New Field sekmesini seçerek yeni veri şekillerimizi olşturalm.


  İlk olarak Adi,Soyadi ve Telefon numarası değişkenlerimizi tanımlayalım. Daha sonrada telefon operatörünün hangi telefon şirketine ait olduğunu comboboxa girelim. Bunun için aşağıdaki ekrandaki gibi değişkenleri oluşturunuz.

Adi: string; size:25
Soyadi : string;  size:25
Telefon: string; size:11
Operatör: string; size 25;

Size ' ları veri karakter genişliği ne kadar olmasını istiyorsanız kendinize göre ayarlayabilirsiniz.


      Artık veritabanımız hazır sayılır. ClientDataSet'e sağ tıklayarak Create ve tekrar sağ tıklayıp Save dedikten sonra uygulamamız için gerekli olan veritabanını oluşturmuş olacağız.
   


      Save işlemini yaparken kayıt yeri olarak uygulamanın .exe sinin olduğu klasörü seçmeniz de fayda var. Bunun nedenini birazdan anlatacağım. Şimdi form'a koyduğumuz veritabanı bileşenlerini veritabanımıza bağlayalım. Bu işlemi de DataSource aracılığıyla yapacağız. Önce DataSource'mizi ClientDataSete Bağlamamız gerekiyor. Daha sonra veritabanı bileşenlerini tıklayarak kırmızıyla yazan DataSource kısmını bulun ve iki kez tıklayın. Otomatikman Form üzerinde bulunan DataSource'miz seçilecektir. Pratik olması açısından Sift tuşuna basarak bileşenleri seçerseniz altı bileşende de ortak olan özellikler çıkacaktır. Buradan DataSourceye çift tıklarsanız bu işlemi tek tek yapma derdinden kurtulursunuz.



Sıra hangi bileşenin hangi değişkeni etkileyeceğine geldik. Bunun için de bileşeni seçerek Datafield kısmından hangi değişkeni etkilemesini istediğimizi seçiyoruz.

     Uygulamamız hazır sayılır. Birkaç küçük ekleme yapabiliriz. Öncelikle Comboboxin itemlerine telefon operatörlerinin ismini girelim. Daha sonrada bir popup menü ekleyerek ekle, güncelle ve silme işlemlerini buradan yönetelim böylece artık navigatörlede işimiz kalmaz. Hemde daha hoş bir görünüm olur.



   Şimdide Popup menümüzü oluşturup bunu DBgridimize bağlayalım. Daha güzel görünmesi içinde bir imagelist ekleyip Popup menü tuşlarımıza birer resim atayalım. Reimleri İconFinder sitesinden çok rahatlıkla temin edebilirsiniz.



      Popup menümüzde resimlerin gözükmesi için popmenü tıklayarak imagelist bölmesinden imagelistimizn adını seçmemiz gerekli. Seçtikten sonrada Popupmenü'den ekle yi seçip imageindexini 0 güncelleyi seçip imageindexini 1 seçtikten sonra pop menümüz güzel bir görüntüye kavuşacaktır.



         DBGrid' de Popupmenü'müzün görünmesi için DBGride tıklayarak popupmenü kısmını popupmenümüzün ismini seçiyoruz.


Birkaç küçük kodlama yaparak Popupmenü tuşlarımıza işlevsellik kazandıracağız. Öncelikle Popupmenümüzün ekle butonuna gerekli kodları yazalım.

procedure TForm1.E1Click(Sender: TObject);
begin
ClientDataSet1.Insert;
end;

procedure TForm1.G1Click(Sender: TObject);
begin
ClientDataSet1.Edit;
end;

procedure TForm1.S1Click(Sender: TObject);
begin
ClientDataSet1.Delete;
end;




    Artık rehber uygulamamız hazır durumda fakat bu uygulamayı başka bilgisayarlarda da kullanabilmek için bir takım ayarlamalar yapmamız lazım. İlk önce benim gibi XE5 kullanıcısı iseniz yapmanız gereken dosya boyunu küçültmek için debug informationu false yapmak. Böylece dosya boyununz 13M lardan bir kaç megabyta düşecektir daha sonrada uygulama ikonunu ayarlamaya geçelim.




 Şimdi de uygulamanın en can alıcı noktası olan ClientDataSet Bağlantısını kuralım. İlk önce ClientDataSete tıklayın ve active konumunu false yapın. Daha sonra Formaa çift tıklayın. ClientDataSetin dosya yerini belitmemiz ve ClientDataSeti active konumuna getirmemiz gerekecek. Aşağıdaki kodları yazarak uygulamamızı her bilgisayarda çalışabilir hale getirmiş olacağız.

  Öncelikle uses kısmına midaslib eklememiz gerekmektedir. Eğer bunu eklemezsek başka bilgisayarda midasdll hatası verecektir. Bunu yaparak midas kütüpanesini exe ye gömmüş olacağız.

uses: midaslib;

procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.FileName:=ExtractFilePath(Application.ExeName)+'rehberveritabani.cds';
ClientDataSet1.Active:=true;
end;

  ExtractFilePath(Application.ExeName) sizin .exe uzantılı ugulamnızın konumunu belirler ve eğer veritabanını exe klasörünün içine atar ve adınıda sonuna eklerseniz programı nereye korsanız koyun uygulama çalışacaktır.

 Ayrıca son olarak Form'un close eventine şu kodları yazarsanız olası bir hatayı yada kayıt yapmama gibi bir durumu çözmüş olursunuz.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientDataSet1.Edit;
ClientDataSet1.Post;
end;

Okuduğunuz İçin Teşekkür Ederim
Hakan UÇAR
İstatistikçi ve Amatör Programcı
İçerikler Tamamen Ücretsiz Olup Özgün Anlatımdır Paylaşırken Kaynak Belirtiniz Lütfen.

Uygulamanın kaynak kodlarına göz atmak isterseniz Yandex Diskimden inderebilirsiz.
 Hakan Uçar Yandex Disk



1 yorum:

  1. Selam
    CDS de tekrarlayan kayıtlar nasıl silinir?
    Makale için ayrıca teşekkürler

    YanıtlaSil