Veritabanı ve Database Desktop

Bu Veritabanı Uygulamaları geliştirmek makale dizisinin bu bölümünde Veritabanının ne olduğundan başlayıp, veritabanı tabanı tasarımına, veri tabanı motorlarına oradan Borland Database Engine (BDE) ve Database Desktop kullanımına değineceğim. Eğer tecrübeli bir veritabanı kullanıcısı iseniz bir bu makale dizisinin sonraki bölümünü okumanızı tavsiye ederim. Fakat anahtar,tablo ilişkileri,lookup,index terimleri ile problemleriniz varsa yada Database Desktop programını verimli kullanamadığınıza inanıyorsanız bu makaleyi okumalısınız.
Veri Tabanı Nedir?
Veritabanı; kısaca verilerin tutulduğu yer anlamına gelir. Fakat bu tanımdan kasıt verilerin tutulduğu bir dosya olmayabilir.Örneğin BDE bir veritabanını her bir dosyaya bir tablo gelecek şekilde ayırmıştır.Fakat Access için tek bir dosya söz konusudur.

Veritabanı Ögelerine Giriş


Makale dizimizin bu bölümünde veritabanı öğelerine ve öğelerinin kullanımına giriş yapacağız.Bu makale veritabanı  öğelerinin kullanımı üzerine bir ön hazırlık niteliğinde olacaktır.Bundan sonraki makalelerimiz TTable öğesinden başlayıp Midas teorisine kadar geniş bir yelpazeyi bol örnekli ve öğelerin tüm özelliklerinin ayrıntılı açıklamaları ile devam edecektir.Bu bölüm daha önce hiç bir uygulamada veritabanı kullanmamış programcılara veritabanının  uygulamalarda nasıl kullanılacağı hakkında ön bilgi verecektir.

Tablo Üzerinde İşlem Yapmak


Makale dizimizin  bu bölümünde Tablo Kayıtları üzerinde yapılabilecek işlemleri anlatacağız. Tabloya DBNavigator yada DBGrid kullanmadan nasıl kayıt ekleyeceğimizi,kayıtları nasıl değiştirebileceğimizi ve nasıl sileceğimizi anlatacağız. Ayrıca Table öğesinin Filter özelliğine de değineceğiz. Table öğesinin Filter özelliği ile tablomuzdaki kayıtları nasıl filitreleyeceğimizi antatacağız.Bu bölümü tüm Delphi programcılarının bir kez daha gözden geçirmelerini tavsiye ederim.
Tablonun Kayıtları İle Çalışmak:
Standart olarak bir tabloya kayıt eklemek için DBGrid bileşeninde ya insert tuşuna basıyor yada son kayıda gidip tab tuşuna basıyorduk. Silmek içinse Ctrl+Del duşuna basıyorduk.Bunu DBGrid olmadan diğer DBComponent bileşenlerinde DBNavigator bileşeninni edit,insert,ve delete tuşları ile yapabiliriz. Ama bunlardan hiç birini kullanmak içimize gelmiyorsa Table bileşeninin bu iş için ayırdığı yordamları kullanabiliriz.

Tablo Sahaları ile İşlemler

Makale dizimizin  bu bölümünde Tablo sahaları ile işlemlerin nasıl yapılacağı hakkında bilgi vereceğiz. DBNavigator kullanmadan tablonun kayıtları arasında dolaşmak,tabloda bir kayıt aramak yakın kayıtları bulmak ve onların üzerinde konumlanmak hakkında bilgi vereceğiz. Ayrıca kayıtları bookkmark ile işaretlemek ve o kayıda tekrar ulaşamayı da anlatacağız. Bu bölümü tüm Delphi programcılarının bir kez daha gözden geçirmelerini tavsiye ederim.
Tablo Kayıtlarında gezinmek:
tablenav.gif (4959 bytes)

Tablo Özellikleri


Veritabanı Uygulamaları geliştirmek makale dizisinin bu bölümünde Paradox'un tablo özelliklerininin kullanımına değineceğim. Bu Bölümde saha geçerlilik kurallarının tanımlanması,Table lookup,secondary indexes(ikincil anahtarlar),referantial Integrity(tablo ilişkileri),Şifre güvenliği ve Tablo dilinin ayarlanması konularıolacak.Bu bölümü her Delphi programcısının en a zbir kez okumasını tavsiye ederim çünkü mutlaka benim analttığım ve sizin kullanırken gözünüzden kaçırdığınız birkaç ayrıntı olabilir.
A) Sahaların Geçerlilik Kuralları:

Tablo Kayitlarini Istege Uygun Dizme


Makale dizimizin  bu bölümünde table kayıtlarını dizmek için kullanılan yöntemlere   göz atacağız. Çalışma anında indeksleri değiştirerek sıralamaları nasıl ayarlayacağımıza değineceğiz. Indeks kullanımının püf noktalarını gözden geçireceğiz. Ayrıca Table öğesinin SetRange yordamları ile bazı kayıtları özgün bir şekilde nasıl gösterebileceğimize ve filitreleyebileceğimize  değineceğiz.

Table Ögesinin Olayları


Makale dizimizin  bu bölümünde table öğesinin olaylarını öğreneceğiz. Table öğesi kayıtlarla ilgili işlemlerinizi kontrol etmeniz için bazı olaylar içerir. Bu olaylar bir işlemin yapılmasından önce yada sonra olan olaylardır. Olayların oluş sırasını After (önce) Before (sonra) takıları ile anlarız. Örneğin Cancel yordamı çalıştırılıp değişlikler iptal edilmeden önceki Cancel olayına BeforeCancel iptal edildikten sonraki Cancel olayına AfterCancel denir. Aşağıda olaylar Before ve After takıları koyulmadan anlatılacaktır. Fakat anlatılacak bütün olayların Before ve After takıları mevcuttur.

Delphide Table Ögesi


Makale dizimizin bu bölümünde Table öğesinin Field altsınıfının özelliklerine değineceğiz. TField Özelliği ile verilere nasıl erişebiliriz ve Field özelliğini Fields Editor ile nasıl değişirebiliriz  bu sorulara yanıt arayacağız. Ayrıca FieldsEditor ile tanımlanan TField Öğelerinin DisplayFormat, CustomConstraint, ConstraintErrorMessage, DefaultExpression, DisplayLabel, EditFormat özelliklerine göz atacağız.
Field öğesi tüm veritabanı kontol nesnelerinin bir alt sınıfıdır. Bu nesne ile alanlara kullanıcının DBComponent öğelerini kullanmasını beklemeden direkt olarak erişebiliriz.Veri Alanlarına Erişmek için iki yöntemimiz bulunmak ta. Bunlardan biri kodla sahalara direkt erişimi sağlar.Fields özelliği bir dizi olduğu için her sahaya bir sıra numarası karşılık gelir.Bunlar sıfırdan başlayıp kullanılan tablodaki saha sayısının bir eksiğine kadar  tanımlıdır. Aşağıdaki örneğe bakacak olursak:
Table1.fields[0].AsInteger;
Yukarıdaki örnekte table1'in ilk alanına Integer'miş gibi erişebileceğimizi gösterir.Bu bileşenin hangi sırada olduğunu bilmiyorsak:

Sola Dayalı Yazabilen TEdit Öğesi.


talignedit.gif (3992 bytes)
TEdit öğesi normalde sadece sola dayalı olarak veri girişi kabul eder. Fakat bazı durumlarda bunun tam tersinin olması gerekir. Örneğin Sayısal bir değeri girerken sağdan sola yazılırsa yazılan sayı daha okunaklı olur. Bunu sağlamanın en iyi yolu TEdit kökenli ve Hizalama özelliğini sağlayan TAlignment sınıfının TEdit'ten türeyen yeni öğeye eklenmesidir. Bunu eklemek için yeni bir component oluşturup bunun kök sınıfını TEdit vermeliyiz.Daha sonra aşağıdaki kodu girmeliyiz:

Delphide bir URL Etiketi Oluşturmak


Bir URL etiketi normal bir delphi etiketi gibidir,fakat HTML sayfasındaki bir bağlantı gibi görünür ve davranır. Varsayılan rengi Mavi ve tabiki altı çizilidir.bir kez tıklandığında,kullanıcının varsayılan web tarayıcısı etikette bulunan adresi kullanarak açılır.Kullanışlı ve genel kullanımı "hakkında" penceresinde doğrudan sizin web sayfanıza gitmesi için bir tane bulundurmaktadır. Dikkatinizi çekmişse YazıPro1.1'de de Hakkında penceresini açtığınızda karşınıza URL etiketi çıkar.Ayrıca varsayılan mail programına mail yollamak için de kullanabilirsiniz. Önerim mutlaka her programınızın bir "Hakkında" penceresi olmalı ve size nasıl ulaşmalarını istiyorsanız (mail,web sayfası) bunu URL etiketi kullanarak belrtmelisiniz. Bu kullanıcıların kendini güvende hissetmesini sağlar.

Birden Çok Tabloyu İlişkilendirerek Kullanmak



Makale dizimizin bu bölümünde birden çok tabloyu birbiri ile ilişkilendirerek nasıl kullanacağımızı anlatacağız.Table öğesinin MasterSource özelliğine diğer bağlayacağımız tabloyu atadıktan sonra Masterfields özelliği ile bağlanacak sahaları nasıl birbiri ile ilişkilendireceğimizi öğreneceğiz. Böylece büyük çaplı tablolarda bütüne yakın kayıtı SQL yerine Tablo kullanarak daha Hızlı listelemiş olacağız. 
Table öğesini kullanarak iki tabloyu birbiri ile kordineli olarak çalıştırabiliriz. Bunun için birbiri ile ilişkili iki tablo alarak ilişkinin çokluk tarafında bulanuan tabloya ilişkili sahayı içeren bir indeks tanımlamalıyız.Daha sonra iki adet Table ve datasource nesnesi alarak forma koymalıyız. birinci table öğesinin TableName özelliğini teklik tarafındaki tablo ikinci table öğesinin TableName özelliğini çokluk tarafındaki tablo olarak ayarlamalıyız.Sonra birinci datasource öğesinin dataset özelliğini birinci Table öğesi ikinci datasource öğesinin dataset özelliğini ikinci Table öğesi olarak ayarlamalıyız.

BDE Administrator


Makale dizimizin bu bölümünde Borland Database EngineAdministrator (BDEA) programın özelliklerini inceleyeceğiz.alias kavramına,BDEA ile alias tanımına,BDEA sürücü özelliklerine,sistem tarih,saat ve sayı görünüm biçimleri ayarlarına,BDEA başlangıç ayarlarının özelliklerine değineceğiz.Bu bölümün sıcak konusu Ağ üzerinde veritabanı paylaşımı için gereken ayarlardır.Bu ayarların nasıl yapılacağı bir örnekle makalemizde mevcuttur.
BDEA
BDEA veri tabanlarının aliaslarını(takma ad),sürücü ayarlarını,tarih saat ve sayı tiplerinin veritabanı uygulamalarında nasıl görünmesi gerektiğini,BDE'nin başlangıç ayarlarını düzenleyebileceğimiz bir programdır.Delphi 5 ile birlikte gelir. Denetim masasındaki BDE Administrator simgesini tıklayarak yada programlar/Delphi5 menüsünden BDE Administrator itemini tıklayarak ulaşabilirsiniz.
BDEA iki sekmeye sahiptir bunlar yanda görüldüğü gibi databases ve configuration sekmesidir. Databases sekmesinde bir alias tanımını düzenleyebileceğimiz gibi yeni bir alias tanımı da yapabiliriz.Configuration sekmesinde ise sürücülerin ayarlarını tarih saat ve sayı tiplerinin veritabanı uygulamalarında nasıl görünmesi gerektiğini,BDE'nin başlangıç ayarlarını düzenleyebiliriz.

Ağ Üzerinde Haberleşme


Bu Makalede Anlatılacak konu iki bölümden oluşmaktadır. Birinci Bölümde bir örnekle nasıl iki kullanıcının ağ üzerinde birbiri ile haberleşebileceğine değinilmiştir. İkinci bölümde ise Ağ üzerinde bulunan Kullanıcıları listeleyen bir örneğe yer verilmiştir.
NMMSG & NMMSGServ
Daha önce yazdığınız gibi DDE kullanamazsınız çünkü DDE iki programın kendi arasında haberleşmesini sağlar. ağlar arası haberleşmeyi değil. Bunun için NMMsg ve NMMsgServ nesnelerini kullanmalısınız. Bunlar Delphi5 de FastNet sekmesinde bulunmakta.

Adım Adım Delphi 5

Herkese merhaba, programcı olmak ve bu işe hevesli olan herkes için kolay anlaşılır delphi derslerine hoşgeldiniz... Sizlerle birlikte delphi dünyasına uzun bir yolculuğa çıkacağız. :-) Uygulamalı olan derslerimizle çok kolay bir şekilde delphiyi kavrayabileceksiniz... Lafı fazla uzatmadan derslerimize geçelim...

Güvenli Kodlama Fikirleri


Pek çoğumuz Dataset örnekleri ile çalışmışızdır.Bu bir verinin işlenmesini epeyce kolaylaştırır. Fakat büyük çaplı bir programda bazen başımıza bela olabiliyor.Hele sistem analizsiz yola çıkmış ve veritabanını oluştururken bazı şeyleri göz ardı etmişsek kesin başımız beladadır.Her ne olursa olsun bazı sahaları silmek yada değiştirmek gerektiğinde bu işlem saatlerimizi hatta günlerimizi alabilir. Ama Delphi'nin inanılmaz kabiliyetleriyle bu kötü durumumuzu aleyhimize çevirebiliriz.