Top Banner
Delphi 7.0. ile VT Delphi 7.0. ile VT Programlama Programlama Hidayet Takçı [email protected] http://htakci.sucati.org
28

Delphi 7

Jun 14, 2015

Download

Technology

Bu derste; Delphi 7.0 ile veritabanı programlamanın temelleri anlatılmıştır.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Delphi 7

Delphi 7.0. ile VT Delphi 7.0. ile VT ProgramlamaProgramlamaHidayet Takçı[email protected] http://htakci.sucati.org

Page 2: Delphi 7

İçerik İç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

Page 3: Delphi 7

Veritabanı ProgramlamaVeritabanı 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

Page 4: Delphi 7

Neden Delphi?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)

Page 5: Delphi 7

Veritabanları ve Kütüphane Veritabanları ve Kütüphane Veritabanı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.

Page 6: Delphi 7
Page 7: Delphi 7

Kütüphane Veritabanı Kütüphane Veritabanı ŞemasıŞeması• YAZAR(YAZARNO, YAZARADI, YAZARTIPI, DNO)• KONUBASLIK(KONUBNO, KONUB, DNO)• FIRMA(FIRMANO, FIRMAADI)• DILLER(DILNO, DILADI)• KITAP(DNO, KADI, ORNEKAD, BASIM, YY, YE, YT,

ISBN, OZET, BOLUMNO, UYENO, FOZELIK, DZ, TASNIFNO, FIYAT, FIRMANO, GELISTAR, DILNO, ADET)

• BOLUM(BOLUMNO, BOLUMADI)• GRUP(GRUPNO, GRUPADI)• UNVAN(UNVANNO, UNVANADI)• UYE(UYENO, ADSOYAD, BOLUM, GRUP, UNVAN,

ADRES, MAIL, TEL, GSM)• ODUNC(UYENO, DNO, ALISTAR, IADETAR)• IADE(UYENO, DNO, GELISTAR)

Page 8: Delphi 7
Page 9: Delphi 7

ODBC (Open DataBase ODBC (Open DataBase Connectivity)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.

Page 10: Delphi 7
Page 11: Delphi 7

Kütüphane Veritabanını Kütüphane Veritabanını Erişilebilir YapalımEriş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.

Page 12: Delphi 7
Page 13: Delphi 7

Görsel Programlama Ortamı Görsel Programlama Ortamı ve Delphive 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.

Page 14: Delphi 7

BDE Bileşeni Nesneleri

Data Access Bileşeni Nesneleri

Data Controls Bileşeni Nesneleri

Page 15: Delphi 7

Bileşenler ve NesnelerBileşenler ve NesnelerDelphi’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

Page 16: Delphi 7

Database Nesnesi ile Database Nesnesi ile Bağlantı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.

Page 17: Delphi 7
Page 18: Delphi 7

Table Nesnesi ile VT’na Table Nesnesi ile VT’na Bağlantı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.

Page 19: Delphi 7

DataSource Nesnesinin DataSource Nesnesinin Kullanımı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.

Page 20: Delphi 7

Data Controls nesneleri ile Data Controls nesneleri ile çalışmaç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.

Page 21: Delphi 7

DBEdit, DBText, DBCombobox v.s. DBEdit, DBText, DBCombobox v.s. ile çalışmaile ç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,

Page 22: Delphi 7

Veritabanı SorgulamaVeritabanı SorgulamaDelphi 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.

Page 23: Delphi 7

Sabit SQL ifadesiSabit 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.

Page 24: Delphi 7

Parametrik SQL İfadesiParametrik 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.

Page 25: Delphi 7

Parametrik SQL İfadesiParametrik SQL İfadesiSorgunun 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.

Page 26: Delphi 7

Parametrik Olmayan SQL Parametrik Olmayan SQL İfadesiİfadesiParametre 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.

Page 27: Delphi 7

Parametrik Olmayan SQL Parametrik Olmayan SQL İfadesiİfadesi

◦var STR:string;

◦begin STR:=‘’; STR:=‘Select * from KITAP where

Kitap_ad like’+’ ’’ ’+edit1.text+’ ’’ ’; Query1.SQL.add(STR); Query1.open;

◦end;

Page 28: Delphi 7

Dersin SonuDersin Sonu

Bu dersin sonunda sadece Delphi ile VT programlamanın sadece kıyısına gelebildik. Gerisi sizin

gayretlerinize bağlı.

Hidayet Takçı[email protected]

Başarılar diliyorum…