1. Delphi 7.0. ile VT
Programlama
Hidayet Takçı
htakci@sucati.org
http://htakci.sucati.org
2. İçerik
Veritabanı Programlama Nedir?
Neden Delphi?
Önce Veritabanını Tanıyalım, Örnek Veritabanı : Kütüphane
ODBC : Veritabanı ile Uygulamalar Arası Bağlantı (ara katman) ve
Veritabanımız için ODBC ayarı
Görsel Programlama ortamı ve Delphi
Delphi’de Veritabanı Bileşen ve Nesneleri
◦ Veritabanı Nesnesi ile Veritabanına Bağlantı
◦ Dataset nesnesi ile Veritabanı Nesnesine Bağlantı
◦ Datasource nesnesi ile Dataset nesnesine bağlantı
◦ Datacontrols nesneleri ile veritabanı üzerinde çalışmaya başlama
Diğer veritabanı nesneleri (DBEdit, DBMemo, DBCombobox, …)
Veritabanı Sorgulama
◦ Query nesnesi, Query.open ve Query.exec metotları
◦ Parametre ile sorgulama
◦ Parametresiz sorgulama
3. Veritabanı Programlama
• Temel veritabanı işlemlerinin
programlama yetenekleri ile yerine
getirilmesi.
• Temel veritabanı işlemleri
– Kayıt ekleme
– Kayıt arama
– Kayıt düzeltme
– Kayıt silme
– Kayıt listeleme (sıralı, şarta bağlı, v.s.)
– Sorgulama
4. Neden Delphi?
• Delphi, öğrenilmesi en kolay dillerden
birisi olan pascal üzerine inşa edilmiştir.
• Ticari uygulamalar geliştirmek üzere
piyasaya sürülmüştür (cobol’un yerine
geçmiştir)
• Görsel dillerin ve nesneye dayalı dillerin
bütün özelliklerini taşır.
• Rakiplerinin bugün bile yapamadığının
uzun yıllar öncesinde başarmıştır
(tecrübe edince ne demek istediğimi
anlayacaksınız)
5. Veritabanları ve Kütüphane
Veritabanı
• Veritabanları, dosya sistemlerinin
yetersizlikleri nedeniyle geliştirilmiştir.
• Bugün en sık kullanılan veritabanı sistemleri
nesne ilişkisel veritabanı sistemleridir.
• En bilinen masaüstü veritabanı MS Access
olup, hemen herkesin bilgisayarında bir VT
uygulaması bulunmaktadır.
• Çalışmamız boyunca MS Access üzerinde
oluşturduğumuz Kütüphane Veritabanı
kullanılacaktır.
• Kütüphane Veritabanı, kütüphane
otomasyonu için gerekli olan veri altyapısını
sağlamaktadır.
9. ODBC (Open DataBase
Connectivity)
ODBC bir ara katman (middleware)
yazılımıdır. Fiziksel veritabanı ile
uygulamalar arasında bağlantı sağlar.
Denetim Masası (control panel),
Yönetimsel Araçlar (Administrative
Tools) içinde bulunur.
Birçok veritabanı için sürücüler içerir.
Bütün sistem tarafından bilinen bir veri
kaynağı adı için System DSN sekmesi
kullanılır.
11. Kütüphane Veritabanını
Erişilebilir Yapalım
– Öncelikle ODBC açılır.
– System DSN sekmesine geçilir.
– Driver do Microsoft Access (*.mdb) kısmı seçilir ve
Bitir düğmesine tıklanır.
– Açılan pencerede Data Source Name yazan yere
tercih edeceğimiz bir takma isim yazılır, örn.
Kutuphane bir takma isim olabilir.
– Description kısmı boş geçilebilir.
– Select düğmesi yardımıyla veritabanının konumu
verilir.
– Veritabanına şifre ile erişilecekse Advanced düğmesi
tıklanarak ayarlar yapılır.
• Bu işlemlerin ardından artık Delphi dahil her
yerden (Excel v.s.) kutuphane takma adı ile
veritabanına erişilebilir.
13. Görsel Programlama Ortamı ve
Delphi
• Görsel programlama ortamından anlaşılması
gereken resim yapar gibi uygulama geliştirme
kolaylığıdır.
• Uygulamada kullanılacak nesneler
Component Palette isimli sekmelerden
alınarak Form üzerine yerleştirilir ve gerekli
parametre ayarları Object Inspector adı
verilen pencere ile yapılır.
• Object Inspector kendi içinde iki sekmeden
meydana gelir: Properties ve Events.
Properties, nesnelerin rengi, boyutu, fontu
gibi dışsal özelliklerini ayarlamada kullanılır.
Events ise nesnelere uygulanan olayların
kontrolünde kullanılır.
15. Bileşenler ve Nesneler
Delphi’de her bir bileşen birbiriyle ilişkili
nesnelerden oluşur. Bu çalışmada
kullanılacak üç temel bileşen; BDE (Borland
Database Engine), Data Access (Veri
erişim), Data Controls (Veri kontrolleri)
bileşenleridir.
Bu bileşenleri bütün nesneleri yerine
bazıları kullanılacaktır, grup şeklinde
vermek gerekirse:
◦ BDE : Database, Table ve Query
◦ Data Access : Datasource
◦ Data Controls : DBGrid, DBNavigator, DBText,
DBEdit, DBMemo, DBListbox, DBCombobox,
DBCheckbox
16. Database Nesnesi ile Bağlantı
◦ BDE sekmesinden Database nesnesi form üzerine alınır.
◦ Nesne çift tıklanarak database diyalog penceresi açılır.
◦ Alias Name kısmından daha önce ayarladığımız kutuphane
seçilir.
◦ Name kutusuna yeni bir isim eklenir örn. Kitap
◦ Defaults butonu tıklanır. ODBC DSN=kutuphane
haricindeki diğer kısımlar silinir.
◦ Options kısmında yer alan Login prompt alanındaki check
kaldırılır.
Artık Delphi için adı Kitap olan bir Veritabanı
kullanıma hazırdır.
18. Table Nesnesi ile VT’na
Bağlantı
◦ BDE sekmesinden Table nesnesi form üzerine
alınır
◦ Object Inspector yardımıyla;
DatabaseName değeri Kitap (az önce tanımladığımız
ad),
TableName değeri KITAP (tablonun adı)
Active değeri True yapılır
Artık Table nesnesi sayesinde
veritabanındaki KITAP tablosu kullanılabilir
hale gelmiştir.
19. DataSource Nesnesinin
Kullanımı
Datasource nesnesi; Table nesnesi içinde
yer alan verinin Data Controls nesneleri
tarafından kullanılabilmesini sağlayan
aracıdır.
◦ Data Access sekmesinden DataSource nesnesi
form üzerine alınır.
◦ DataSource nesnesinin DataSet özelliği Table1
olarak ayarlanır.
◦ İstenirse DataSource nesnesine isim verilebilir.
Bu işlemlerin ardından artık KITAP tablosu
değerleri üzerinde çalışabilir hale gelmiştir.
20. Data Controls nesneleri ile
çalışma
◦ DataControls sekmesinden bir DBNavigator ve
bir DBGrid form üzerine alınır.
◦ Önce DBNavigator nesnesinin,
◦ Daha sonra DBGrid nesnesinin,
DataSource değeri DataSource1 olarak set edilir.
Bu işlemin ardından, KITAP tablosu
üzerinde; navigasyon işlemleri, veri ekleme,
veri silme dahil olmak üzere bütün işlemler
yapılabilir. DBNavigator üzerinde yapılan
işlemler DBGrid üzerinde izlenebilecektir.
21. DBEdit, DBText, DBCombobox v.s. ile
çalışma
◦ Data Controls sekmesinden DBEdit ve
DBText kontrolü forma alınır.
Datasource:=Datasource1;
Datafield:=KADI; (nitelik adı)
◦ İki kontrol için de tanımlama aynıdır fakat
görünüm ve işlev bakımından farklılık
vardır.
◦ Diğer kontrollerde de yöntem aynı
olacaktır,
22. Veritabanı Sorgulama
Delphi ile veritabanına erişmek ve onu
çeşitli şekillerde, esnekçe kullanmak
mümkündür.
Bu iş için Delphi tarafından sunulan
nesne Query nesnesidir.
Query nesnesini kullanırken;
◦ Sabit bir SQL ifadesi girebiliriz,
◦ Parametrik bir ifade girebiliriz,
◦ Dinamik olarak oluşturulmuş bir text
girebiliriz.
23. Sabit SQL ifadesi
◦ BDE sekmesinden bir Query nesnesi (Query1),
◦ Data Access sekmesinden bir DataSource
nesnesi (DataSource1),
◦ Data Controls sekmesinden bir DBGrid nesnesi
(DBGrid1) form üzerine alınır.
Query1.DatabaseName:=Kitap;
Query1.SQL.Add(‘Select * From KITAP’);
DataSource1.Dataset:=Query1;
DBGrid1.DataSource:=DataSource1; yapılır.
◦ Bu ayarlamaların ardından Query1.open ile
sorgu sonucu alınır ve sonuç DBGrid içinde
görülür.
24. Parametrik SQL İfadesi
◦ Öncelikle Query nesnesinin SQL satırı aşağıdaki gibi
yazılır;
Select * from KITAP where Kitap_ad like :kitapismi
‘:’ işareti arkadan bir parametre geldiğini ifade eder
Parametre adı kitapismi ve indisi 0’dır (ilk parametre)
◦ Query1.params[0].Datatype:=ftString; yapılır
Parametrenin veri tipi önemlidir.
◦ Ardından program ara yüzü ile parametrik SQL ifadesine
parametre girilir.
Edit1.text:=‘Bilgisayar’ olsun
◦ Bir buton yardımıyla editbox içindeki değeri sorguya girelim
ve sonucu alalım.
◦ Kimi zaman, joker karakterleri kullanmak gerekebilir, bunu
editbox içerisine doğrudan joker karakterleri girerek
yapabiliriz veya program içerisinde bunu yapabiliriz.
25. Parametrik SQL İfadesi
Sorgunun işlenebilmesi için gerekli kod
satırı şöyledir:
◦ Query1.close;
◦ Query1.prepare;
◦ Query1.params[0].asstring:=edit1.text;
◦ Query1.open;
Önce, query kapatılır, arkasından
parametre için hazır hale getirilir ve en
sonunda parametrenin uygun tipte olması
garanti altına alınır.
26. Parametrik Olmayan SQL
İfadesi
Parametre ayarlamak zor gelebilir bazen, o
zaman şunları yapacağız:
◦ Yine bir Query nesnesi, DataSource ve Edit
nesnesi alacağız.
◦ Query nesnesi içerisinde hiçbir SQL ifadesi
olmayacak varsa bile;
Query1.SQL.Delete; ile sileceğiz.
◦ Arkasından; bir STR stringi içerisinde öncelikle
SQL ifadesini meydana getirecek ve bunun
Query nesnesi içine yerleştireceğiz.
27. Parametrik Olmayan SQL
İfadesi
◦ var
STR:string;
◦ begin
STR:=‘’;
STR:=‘Select * from KITAP where Kitap_ad
like’+’ ’’ ’+edit1.text+’ ’’ ’;
Query1.SQL.add(STR);
Query1.open;
◦ end;
28. Dersin Sonu
Bu dersin sonunda sadece Delphi ile VT
programlamanın sadece kıyısına
gelebildik. Gerisi sizin gayretlerinize
bağlı.
Hidayet Takçı
htakci@gmail.com
Başarılar diliyorum…