https://www.youtube.com/watch?v=4cbbuiBdOU8

Delphi ile Vcl Veri Tabanı İşlemleri

İçerik;

-Delphi ile veri tabanı bağlantısı Master Detail Bağlantı yapılması

-Grid üzerinde verilerin gösterilmesi

 -Arama işlemlerinin yapılması

- Uygulamamız MsSql üzerinde olmak ile beraber Firedac'ın esnek özellikleri sayesinde destek verilen tüm veri tabanlarında aynı adımları takip ederek bağlanabilirsiniz.

Neden Delphi ile veri tabanı ile uygulaması geliştirmek tercih ediliyor?

Bu soruya verilebilecek çok fazla cevap olması ile beraber temelde 2 özellik yer alıyor.

  1. İleri seviye yazılım bilgimiz olmadan ileri seviye yazılım üretmemizi sağlıyor.
  2. Kolaylıkla Framework yapısının oluşturulabiliyor olması.

Delphide büyük bir veri tabanı uygulaması oluşturulurken izlenen yöntem ;

Delphi ile framework oluşturuyorsunuz. Bu framework’ten sizin oluşturduğunuz altyapı ile kullanıcılar kendi ihtiyacı olan raporları formları oluşturabiliyorlar. Delphi ile bu işlemi yapması oldukça kolay bunun nedeni ise delphideki dinamik kütüphanelerin çokluğu ve zenginliği.

Uygulamada kullanacağımız veri tabanı tabloları ve kolon bilgileri;

TBL_KAYIT: {ID, ADI, SOYADI, FOTO}

TBL_HAREKET: {HAREKET_ID, HAREKET_KAYIT_ID, HAREKET_ACIKLAMA, HAREKET_TUTAR}

Kullanılacak tablolarda birer tane otomatik artan sayı ve indexlenmiş alan olması önerilir.

Demo

Uygulamamızı açıyoruz. File> New> Vcl Application seçerek boş bir form açılmasını sağlıyoruz. Formumuzun üzerine FDConnection koyuyoruz.

FDConnection : Bir veri tabanı ile bağlantı kurmak ve ilişkili veri kümelerini yönetmek için kullanılır.

(Biz FireDAC’ın bileşenini kullandık fakat siz başka 3.parti bileşenlerini tercih edebilirsiniz. )

FDConnection’a çift tıklıyoruz açılan pencerede Driver ID = Mssql seçiyoruz siz hangi veri tabanına bağlanmak istiyorsanız onu seçebilirsiniz. Sürümlere göre erişilen veri tabanları değişiklik göstermektedir. (Community sürümü kullanıyor iseniz mssql veri tabanına bağlanamıyorsunuz)

Biz mssql seçtikten sonra Sql Server Management Studio’yu açıyoruz server name kısmını kopyalıyoruz FDConnection penceresindeki server alanına yapıştırıyoruz. Ücretli bir sql server versiyonunuz varsa o zaman bu kısma ip adresini yazmanız yeterli olacaktır. Database kısmına veri tabanı ismimizi yazıyoruz. User_Name ve Password alanlarını doldurmamız gerekiyor  bu alanı doldurmanın iki yolu var. Birinci yol sql serverda bir kullanıcı oluşturmak ve kullanmak. İkinci yol OSAuthent kısmını yes seçmek bu şekilde Windows’ta login olduğumuz kullanıcı adı ve şifreyle yetki al demiş olduk. Eğer Windows’unuz ve sql server’iniz aynı domainde ise ya da aynı bilgisayarda ise ikinci yolu kullanabilirsiniz. Test butonuna tıklıyoruz ve bağlantının başarılı olduğu penceresini ekranda görebiliyoruz. FDConnection için Login Prompt özelliğini object inspector’dan false yapıyoruz.

Login Prompt: Bağlantıdan önce oturum açma penceresinin açılıp açılmayacağını belirtir.

Bu haliyle projemizi kaydedelim isimlendirmelerimizi yapalım. Unit1.pas > uMain , Project1.dproj> WebinarDb.

Formumuza tıklayıp object inspector kısmından name> frmMain olarak adlandırıyoruz. İsimlendirmeleri kendi uygulamanızın yapısına göre değiştirebilirsiniz. Formumuza FDQuery yerleştiriyoruz. Name> qKayit olarak değiştiriyoruz. Bu queryden TBL_KAYIT tablomuza ulaşacağımız için biz bu şekilde adlandırdık.

FDQuery : Sql sorgularını yürütmemizi, sonuç küme kayıtlarını görmeyi ve düzenlemeyi sağlar.

QKayit’ a çift tıklıyoruz ve açılan pencerede verisini almak istediğimiz tablo için sorgu yazıyoruz. Bizim sorgumuz;

SELECT * FROM TBL_KAYIT

Execute tıklayarak alt kısımda tablonun içindeki verileri görebiliyoruz.

Not:  FDConnection’un connected özelliği her zaman false olmalı ve program açıldıktan sonra bir button yardımı ile açılmalı. Buna dikkat etmeliyiz çünkü bazı veri tabanlarında veri tabanına ulaşılamadığı için program açılmadan hata vermektedir.

Forma DbNavigator ve DbGrid ekliyoruz. Align’larını alTop yapıyoruz her ikisinin de. Ekran düzenini kendi isteğinize göre de ayarlayabilirsiniz. Bir adet DataSource ekliyoruz. Name> dsKayit olarak adlandırıyoruz. DbGrid ve DbNavigator’ün object inspector da DataSource alanlarını dsKayit olarak seçiyoruz.  Aynı işlemi sağ tık ile bind visually seçerek açılan ekranda gerekli bağlamaları yaparak da gerçekleştirebilirsiniz. Bir adet Panel ekliyoruz. Align> bottom ayarlıyoruz. Panel’in içine bir adet button ekliyoruz. Align> alleft , name> btnConnect ayarlıyoruz. Butona çift tıklıyoruz;


procedure TfrmMain.btnConnectClick(Sender : TObject);
begin
FDConnection1.open();
qKayit.Open();
end;

Çalıştırıp buttona tıkladığımızda verilerin geldiğini görebiliyoruz.

Ek Bilgi : Nesneleri grid üzerinde değilde örneğin edit üzerinde göstermek istersek query’e sağ tık> fields editor seçerek açılan pencerede sağ tıklayıp add all fields seçerek bu alanda fieldsleri görebiliriz buradan forma sürükleyerek ya da edit bileşenleri yerleştirerek kullanabiliriz. Formu çalıştırdığımızda biz kayıtlar üzerinde gezdikçe editlerde de verilerin değiştiğini görebiliyoruz bunun sebebi editlerinde dbedit olmasıdır. Bu halini projemizde kullanmayacağız örnek olması açısından formdaki görüntüsü aşağıdaki gibidir;

 

Forma bir query daha ekliyoruz. Name> qHareket olarak adlandırıyoruz. Query’e çift tıklıyoruz. Açılan pencereye ; SELECT * FROM TBL_HAREKET yazıyoruz. 1 Tane FDConnection olduğu için otomatik olarak ona bağlandı execute tıklayınca aşağıda verileri görebiliyoruz. qHareket’in object inspectordan MasterSource kısmını >dsKayit , MasterFields> ID, IndexFieldName> HAREKET_KAYIT_ID seçiyoruz. Forma bir tane daha DataSource yerleştiriyoruz. Object inspectorda Name> dsHareket , DataSet> qHareket yazıyoruz. Bir adet DbGrid ve DbNavigator yerleştiriyoruz. DbGrid align> alclient. DbNavigator> align albottom seçiyoruz. Her ikisininde DataSource kısmını dsHareket seçiyoruz.

btnConnectClick buttonuna ekliyoruz;


qHareket.Open();

Çalıştırıyoruz ve navigatörlerden yardım alarak hareket tablomuza kayıt ekliyoruz. Kayıt tablomuzda kayıtları geziyoruz. Kayıtları eklediğimiz idlere geldiğimizde hareket tablosundaki kayıtları görebiliyoruz.

Master Detail kısmı bu şekildeydi fakat burada dikkat etmemiz gereken bir konudan bahsetmek istiyorum. qHareket querysini açalım execute ettiğimizde görüyoruz ki tüm kayıtlar geliyor. Bu şekilde olması doğru değil. Burada where ile filtreleyerek parametre ile sorgulamamız gerekiyor. Master kısmında seçilen id’ye sahip detail kısmının gelmesi için. Bizim tablomuz için sorgumuzun yeni hali ;

 SELECT * FROM TBL_HAREKET

WHERE HAREKET_KAYIT_ID = :kayit_id

Bulunduğumuz pencerede 2. sekme olan parameters sekmesine geliyoruz. Burada yazdığımız parametrenin (kayit_id) oluşturulduğunu görüyoruz. Paramtype > ptInput, DataType> ftString seçiyoruz. Kendimiz doğru sonuç verip vermediğini kontrol etmek için value kısmına tabloda verisi olan idllerden birini yazarak execute tıklayarak deniyoruz ve aşağıda verileri görebiliyoruz. Formu çalıştırdığımızda aynı şekilde sonucu göremiyoruz bunu düzeltmek için qKayit’ın object inpsctordan event kısmından AfterScroll’a çift tıklıyoruz;


procedure TfrmMain.qKayitAfterScroll(DataSet : TDataSet);
begin
qHareket.Params[0].Value := qKayitID.value ;  //(burada fieldbyname’ de kullanabilirsiniz)
qHareket.close;
qHareket.Open();
end;

Bu kod aynı anda işlemin ekrandaki nesnelerde gözükmesini sağlayacaktır. Bu şekilde bu kısmı da tamamladık.

Formun çalışır görüntüsü aşağıdaki gibidir;

Edit ile arama işlemini yapmak için az önce kullandığımız proje üzerinden devam edeceğiz. Projemize eklemeler yaparak kolayca tamamlayacağız.  Bir panel ekliyoruz panelin içine bir adet button ve edit ekliyoruz. Button için  text> ara, name>btnAra. Edit için textini temizliyoruz, name> EditAra şeklinde adlandırıyoruz. Buttona çift tıklıyoruz. Kodlarımızda query’nin sql kısmına ekleme yapacağız fakat önceden sql’ de yazılı olan sorgu için bir global değişken tanımlıyoruz. oldSql : string tipinde tanımladık bunu bu kısımda kullanacağız.


procedure TfrmMain.btnAraClick(Sender : TObject);
begin
qKayit.close;
oldSql := qKayit.sql.text;
qKayit.sql.clear;
qKayit.sql.Add(‘SELECT * FROM TBL_KAYIT’);
qKayit.sql.Add(‘WHERE ADI = ‘+ QuotedStr(EditAra.text)’);
qKayit.open();
end;

Edite tablodan bir kayıt yazdığımızda filtrenin çalıştığını verinin geldiğini görüyoruz.

Formun çalışır haldeki görüntüsü aşağıdaki gibidir;

Cam ++

CAM++

CNC Tezgahlara Program Yazan Program.

CAM++ Nedir?

CAM++, makine üreticisi firmaların, kendi ihtiyaçlarına göre özelleştirilmiş CAM (Computer-Aided Manufacturing) programlarını parametrik olarak oluşturabilecekleri gelişmiş bir yazılım geliştirme ortamıdır. Bu , firmaların üretim süreçlerini optimize etmelerine, verimliliklerini artırmalarına ve pazardaki rekabet güçlerini yükseltmelerine yardımcı olur. CAM++ ile, üretim alanında esneklik kazanırken, iş akışlarınızı hızlandırabilir ve kaynakları daha etkin kullanabilirsiniz.

Özellikler

Kapsamlı API Desteği

CAM++ , CAD/CAM süreçlerinizi basitleştiren geniş kapsamlı API desteği sunar. Karmaşık geometrik hesaplamalar, 3D modelleme ve hassas üretim verileri işleme gibi ihtiyaçlarınıza tam çözüm sunar.

Kolay Entegrasyon

CAM++ , mevcut sistemlerinize hızlı ve verimli bir şekilde entegre edilebilir. Özellikle iş akışınıza tam uyum sağlayarak üretkenliğinizi artırmak için tasarlandı.

Hassas Üretim Kontrolü

CAM++ , CNC makinelerinizin hassas kontrolünü sağlar. Gerçek zamanlı veri işleme ve programlama ile üretim süreçlerinizi hatasız yönetebilirsiniz.

Kimler İçin?

Makine Üreticileri

Kendi makineleri için özelleştirilmiş CAM programları geliştirmek isteyen makine üreticileri, CAM++ ile parametrik ve esnek çözümler oluşturabilirler.

CNC Tezgah Operatörleri

CAM++ , farklı üretim senaryoları için hızlı ve esnek çözümler oluşturmak isteyen CNC tezgah operatörlerine yönelik ideal bir araçtır.

Endüstriyel Otomasyon Firmaları

Üretim süreçlerini optimize etmek ve verimliliği artırmak isteyen endüstriyel otomasyon firmaları, CAM++ ile üretim hatlarında esnek ve özelleştirilebilir çözümler geliştirir.

Neden CAM++?

CNC Üniteniz ile Entegre Çalışan CAM Çözümleri

CAM++ size CNC tezgahınıza özel, ünitenizin içerisinde entegre çalışan güçlü bir CAM yazılımı sunar. Bu sayede, dış yazılımlarla vakit kaybetmeden CAD ve CAM işlemlerini tek bir ortamda yapabilirsiniz.

Zamandan Kazanın, Verimliliğinizi Artırın

CAM++ ile tüm CAD/CAM işlemlerinizi aynı platformda yaparak, iş süreçlerinizi hızlandırır ve zaman tasarrufu sağlarsınız. Bu, iş verimliliğinizi önemli ölçüde artırırken, üretim hattınızdaki duraksamaları minimuma indirir.

Kolay Kullanım ve Parametrik Ekranlarla Esneklik

Kullanıcı dostu arayüzler ve parametrik ekranlar sayesinde CAM++ kullanımı son derece kolaydır. Bu özellikler, farklı üretim senaryolarına hızlıca uyum sağlamanızı ve ihtiyacınıza göre özelleştirilmiş çözümler geliştirmenizi mümkün kılar.

Rekabette Bir Adım Önde Olun

CAM++’ın sağladığı verimlilik, hız ve esneklik avantajlarıyla rakiplerinizin önüne geçin. Üretim maliyetlerinizi düşürürken, iş gücü ve zaman yönetiminizi optimize edin.

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 Dairse / no : Pamukkale v.d. 196 074 62 30

Tel : +90 850 333 80 20

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

Arge :

Pamukkale Üniversitesi teknoloji geliştirme bölgesi (Teknokent)

Kınıklı mah. Hüsseyin yılmaz cad. no 67

idari bina d blok no g05 Pamukkale / 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