Delphi 7.0. ile VT Delphi 7.0. ile VT Programlama Programlama Hidayet Takçı [email protected] http://htakci.sucati.org
Jun 14, 2015
Delphi 7.0. ile VT Delphi 7.0. ile VT ProgramlamaProgramlamaHidayet Takçı[email protected] http://htakci.sucati.org
İç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
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
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)
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.
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)
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.
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.
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.
BDE Bileşeni Nesneleri
Data Access Bileşeni Nesneleri
Data Controls Bileşeni Nesneleri
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
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.
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.
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.
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.
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,
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.
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.
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.
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.
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.
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;
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…