https://www.youtube.com/watch?v=aYhpfYFVpkU

File >New >Multi Device Application >Blank Application ilk önce arayüzümüzü tasarlıyoruz.Palette >Tabcontrol1 >align >client. Tabcontrol’e sağ tuş >Item editor > TabItem1 ve TabItem2 ekliyoruz. Palette >Toolbar1 - Grid1 - StringGrid1 - Listbox1 - Toolbar2 - Navigator1 - Navigator2. Toolbar1 >align >top. Grid1> align >top - name →GridDepo. StringGrid1 >align >client - name →gridStok. Listbox1 >align >client - name →LbDepo. Toolbar2 >align >top. Navigator1 >align >left - name →NavDepo. Navigator2 >align >left → NavStok. Formumuzu kaydedelim.

Yeni klasör ekledik →Depo - Unit1 →uMain - Project1 →Depo. Depo.exe >sağ tuş >add new >other >Database >Data module . Data module eklemedende yapabilirsiniz. Buraya koyduğunuz nesneleri forma koysanızda çalışırlar. Unit1 kaydediyoruz, Unit1 →uDmod. Object inspector >Data module1 >name →frmDmod1. Unit1’i kullanabilmemiz için form1’de tanımlamamız lazım. File >use unit > uDmod.pas seçerek otomatik tanımlamış oluyoruz. uDmod > palette >FDConnection1(çoğu veritabanıyla bağlantı sağlıyor.) - FDQuery1 - FDGUIxWaitCursor1 - FDPhysSQLiteDriverLink1. FDConnection >çift tıklıyoruz açılan ekranda; Driver ID :SQLite , Database : depoDB (veri tabanımızın ismini yazıyoruz). User name: root. >Test butonuna tıklıyoruz. Bağlantı sağlanıyor. FDQuery >name →QCreateTables. QCreateTables >çift tıklıyoruz. SQLite veritabanı ve tabloları otomatik oluşturacağız.SQLite’in kendi web sitesinden hazır bir tablo şablonunu kopyalayarak Qery’nin içine yapıştırıyoruz. Kendimize göre düzenliyoruz;

CREATE TABLE IF NOT EXISTS DEPO (

     DEPO_ID integer PRIMARYKEY,

     DEPO_ADI widestring memo NOTNULL,

     DEPO_KODU integer DEFAULT 0);

CREATE TABLE IF NOT EXISTS STOK (

     STOK_ID integer PRIMARY KEY,

     STOK_ADI widestring memo NOT NULL,

     STOKDEPO_ID integer

Palette >FDQuery1 -FDQuery2 ekliyoruz. Query’lerimizin içine 2 tane SQL yazılıyor master detail bağlantı için. Palette > Data source1 >name→ dsDepo . FDQuery1 >name →QStok - FDQuery2 >name →QDepo.  QDepo’ya çift tıklayarak SQL’ine gidiyoruz. select*from depo yazıyoruz >execute >ok. QStok > select*from stok yazıyoruz >execute >ok.  dsDepo > object inspector >Dataset >QDepo. Master data bağlantı için Data source ‘ü master tablomuza bağladık. Detail tablomuzdaki 3 parametreyi değiştiryorz. QStok >object inspector >Master Source(Master tablomuz olacak)> DsDpo >Master Fields >DEPO_ ID(Master tablodaki ID alanımız). Index Fieldname (Detail tablodaki master tabloyla bağlantı kurmak için ayırdığımız alan)>STOKDEPO_ID. uMain> GridDepo >sağ tuş >Bind visually > Live Buildings Designer penceresi açılıyor, bağlantılarımızı yapıyoruz. frmDmod1 QDepo’yu GridDepo ve NavDepo ile bağlıyoruz.frmDmod1  QStok’u NavStok ve GridStok ile bağlıyoruz. Veri tabanı bağlantı kısmı tamamlandı. Connectionlarımızı false yapmamız gerekiyor çünkü mobil uygulamada false yapmadan gönderdiğimizde hata veriyor. uDmod >Palette > Button1 >align >right - name →btnBaglan. btnBaglan >çift tıkılıyoruz kod satırına gidiyoruz.


procedure TForm1.btnBaglanClick(Sender : TObject);
begin
   with frmDmod1 do
   begin
     FDConnection1.Open();
     QCreateTables.Exec.SQL;
     QDepo.Open();
     QStok.Open();
   end;
end.

Çalıştırıyoruz ve veri tabanı bağlantımızın sağlandığını görüyoruz. Ekle butonundan veri girişi yapabiliriz. Biz verileri giriyoruz fakat ID kısmına tanımlanmadıklarını görüyoruz otomatik yapmadığımız için biz tanımlandığını veri girişi yaparken göremiyoruz programı açıp kapadığımızda ID’lerin geldiğini görüyoruz. Bu sorunu çözmenin birkaç yöntemi var fakat en uygunu FireDac’da veritabanı alanının otomatik sayı olup olmadığını bildirebileceğimiz bir parametremiz var bunun için Query’lerin üzerine gelerek(QDepo ve QStok ) AutolnFields kısmına tıklayarak DEPO_ID seçerek dolduruyoruz. Çalıştırıyoruz ve otomatik ID’ler geliyor. Detail tabloda birkaç veri girelim. Detail tablonun SQL’ine where yazmadık bu durumda SQL biz master detail bağlantı bile yapmış olsak tabloları açtığımızda hem master tablodaki bütün kayıtları çekecek hem de  detail tablodaki bütün kayıtları çekip sonra filitreleyecektir. B uda performans açısından bize bir kayıp yaşatacaktır. Çok veri girdiğimizde bu hissedilecektir bunun için where kısmını mutlaka eklemeliyiz. uDmod >QStok >SQL penceresi açıldı →SQL Command > select*from stok yazıyordu altına →where STOKDEPO_ID =: DEPO_ID yazdık. Parameters > Param type : ptInput - Datta type : ftInteger seçiyoruz. Çalıştırıyoruz ve daha verimli olduğunu görüyoruz. Listbox’ı da bağlıyoruz. LbDepo >sağ tuş >Bind Visually. Live Buildings Designer penceresi açıldı. LbDepo ile parametreleri sürükleyerek bağlantıyı  gerçekleştiriyoruz. Çalıştırıyoruz ve Lisbox’taki gösterimide görüyoruz. Mobil uygulamada gösterme hazırlıklarına başlıyoruz. Depo.exe >sağ tuş > show in Explorer. Projemize database dosyamızı dosya olarak eklememiz gerekiyor. depoDb’yi sürükleyerek ekliyoruz açılan ekranda →SQLite Engine’i işaretliyoruz. FDConnection’ın before connect kısmına yazmamız gereken bir kod var. uDmod >FDConnection1 >Object inspector >Events >Before connect tıklıyoruz;


procedure TfrmDmod1.FDConnection1BeforeConnect(Sender :Tobject);
begin
FDConnection1.Params[0] := GetHomePath +PathDelim + ‘depoDB’
// FDConnection1.Params[0] → parametre olarak kaçıncı sıradaysa onu yazıyoruz köşeli paranteze Sırasına bakmak için FDConnection1 > Properties >Params >tıklayarak sırasını görebilirsiniz database parametremizin.
end;
end.

Bu 1. yöntemdi burada çalıştırınca göreceksiniz ki Windows’un Home path’nde veritabanı oluşturdu onun içerisine tablolar açtı.

2.yöntem :


procedure TfrmDmod1.FDConnection1BeforeConnect(Sender :Tobject);
begin
FDConnection1.Params.Values[‘Database’] := GetHomePath +PathDelim + ‘depoDB’
end;
end.

Derliyoruz uygulamamız çalıştı. Android cihazımıza gönderebiliriz.Target platforms> target> cihazımızı seçiyoruz derliyoruz. Önümüze gelen ekranda SQLite database seçiyoruz ve derleme devam ediyor ve uygulama cihazımıza geliyor bütün fonksiyonlar burada da çalışıyor. İstediğimiz gibi veri girişi yapabiliriz.

Firma Bilgileri


Camart Araştırma Geliştirme Yazılım Otomasyon San. Tic.Ltd. Şti.

Mersis no : 3356 7133 6775 9746

info@camartarge.com

Vergi no : 196 074 62 30

Tel : +90 850 333 80 20

İban (TL): TR30 0020 5000 0085 3809 5000 03

Arge :

Paü teknoloji geliştirme bölgesi (Teknokent)

idari bina d blok no g05 Denizli

 

İban (USD):TR03 0020 5000 0085 3809 5001 01 


Barbaros Mah. Halk Cad. No 47 / 2 34746 Ataşehir İstanbul

İban (Euro):TR73 0020 5000 0085 3809 5001 02 

 
 
 
 
 
 
Harita verileri ©2015 Google

İletişim

Facebook Pinterest Twitter Google+ Dribbble