delphi de veritabanı

Post on 10-Jan-2016

55 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

DELPHI de Veritabanı. Veritabanı Bileşenleri ve Kullanımı. VERİTABANI BİLEŞENLERİ. Bileşen paletinde Data Access ve Data Controls sayfalarında bulunurlar. Genel olarak bir veri tabanına bağlanıp veriler üzerinde insert, update,delete veya belli kayıtların görüntülenmesi için kullanılır. - PowerPoint PPT Presentation

TRANSCRIPT

DELPHI de Veritabanı

Veritabanı Bileşenleri ve Kullanımı

VERİTABANI BİLEŞENLERİ

Bileşen paletinde Data Access ve Data Controls sayfalarında bulunurlar. Genel olarak bir veri tabanına bağlanıp veriler üzerinde insert, update,delete veya belli kayıtların görüntülenmesi için kullanılır.

Delphi 5 için VT bileşenleri

Delphi 5 için VT bileşenleri

Data Access sayfasındaki bileşenler unvisible (yani program çalıştığı zaman ekranda gözükmeyen) bileşenlerdir. Bu bileşenler Data Controls sayfasındaki bileşenler yardımı ile görüntülenecek veriler için veritabanları ile köprü vazifesi görürler.

TTable:

BDE kullanılarak hazırlanmış tablolarda kullanılan bir bileşendir. Bu bileşen sayesinde paradox, dBase, Access… gibi tekli ortamdaki veya interbase, Oracle …, gibi uzak serverlarda ki her kayıda ve her alana direk olarak ulaşabiliriz. Ayrıca dizayn sırasında yaratmak, silmek, güncellemek, isim değiştirmek gibi işlemleri table bağlanarak yapabiliriz

TTABLE Önemli özellikleri Active : Boolean değer alır. Tablonun açık

veya kapalı( bağlı olup olmaması) konumunu belirtir.

Tablo üzerinde bir işlem yapılacaksa mutlak suretle açık yani true olmalıdır.

Asıl kontrolü kod içinden yapılmalıdır. Kullanıcının tablodaki işlemleri bittiğinde bir kez açıp kapamak en doğrusudur.

TTABLE Önemli özellikleri 2 DataBaseName: Database Name’e BDE

içinden tanımladığınız herhangi bir alias’ı, projeniz içindeki Database bileşeninin Database Name’ini (bunlar combobox içinde otomatik olarak gelirler) veya paradox vb. gibi tablolar için tabloların bulunduğu dizinin adını verebilirsiniz.

Kısaca buraya önceden hazırladığımız veritabanının ALIAS ismini vereceğiz

TTABLE Önemli özellikleri 3 Name : Kod içinde kullancağımız adı

buraya yazarız. Tablonun işlevine uygun bir ad vermek her zaman avantajlıdır

TableName: DatabaseName’i seçtikten sonra yapacağımız ilk iş olarak TableName vermektir. Bu alanda DataBaseName’de hazırlamış olduğunuz Tableların isimlerini görmek mümkündür. Buna bağlı olarak hangi table’ı kullanacaksanız o ismi seçmelisiniz.

TTABLE Önemli özellikleri 3

ÖRNEKprocedure

TForm1.Button1Click(Sender: TObject);

begin if table1.Active then begin button1.Caption:='AÇ'; Table1.Active:=false; end else begin button1.Caption:='KAPAT'; Table1.Active:=True; end; end;

TTABLE Önemli özellikleri 4 TableType : hazırlanmış olan table ın hangi

ortamda olduğunu belirtir. Default kalması herzaman iyidir.

MasterFields : Link edilecek başka bir table varsa yani bir veritabanı içinde bağlantılı olan ana tablo ve onun yardımcı tabloları bu özellikten başlayarak ilişkilendirilir. Veri tabanından ana tablo ve ilişkiler önceden ayarlanmalıdır ki bu alanda herhangi bir seçenek çıkabilsin

TTABLE Önemli özellikleri 5

Mastersource: bağlantı kurulan table’ın hangi alan adı ile ilişkilendirileceği belirlenir.

IndexName: Tabloda indexlenmiş bir alan burada gözükür. Programın ihtiyacına göre bu alan seçilebilir.

Kayıta ulaşmak Herhangi bir kayıta ulaşmak veya istenilen

bir kayıtı bulmak için genel olarak üç çeşit yöntem kullanılır. Bunlar FindKey() Locate() Lookup() GotoKey() GotoNearest() FindNearest()Prosedürleridir.

Findkey Findkey: index name ve index fields

özellikleri belirtilmiş olmalıdır. Bu fonksiyon istenilen kayıt bulunmuşsa True Table1.FindKey([değişken1,değişken2,…]) Buradaki değişken sayısı index fields özelliğinde tanımlanan veya index name ile belirtilen indexin sahip olduğu alan sayısına eşit olmalıdır ve o alanlara karşılık gelen değerler verilmelidir.

Findkey Örnek: Index Fields=Numara olsun. Bu

durumda kod şu şekilde olmalıdır. Table1.FindKey([2500]) ;

Burada indekste belirtilen alanın tipi ile koda yazdığımız tip birbirini tutmalıdır. Eğer IndexFields=Adi;Soyadi şeklinde ise kod Table1.FindKey([‘Ahmet’,’SAVAŞ’])

şeklinde olmalıdır.

FindNearest

FindKeyden farklı olarak yakınsak arama yapmak için kullanılır.

Kulanım biçimi Findkey gibidir.İkiside parametre olarak dizi alırlar.

Bu diziler indexlenmiş alan olmak zorundadır.

Aranacak bilgi tam yazılmasa da olur.

Setkey:

Setkey yordamı field öğesine bir arama yapılacağını belirtir. dsSetKey bölümünü bir veri setini yerleştirmek ve aktif  key bufferinin içeriğini temizlemek için kullanılır. Bu yordam kullanıldıktan sonra field öğesine yazacağınız değer GotoKey GotoNearest  yordamları ile aratılır

GotoKey - GotoNearest

Find yöntemleri ile aynı işi yaparlar. İndexlenmiş alanlarda kullanılırlar. Gotokey direk tahmini arar. Diğeri en yakın tahmini bulur.

table1.GotoKey; table1.GotoNearest;Şeklinde kullanılırlar.

Locate

FindKey gibi çalışır. Fakat bunda alan isimlerini de kendiniz verirsiniz.

Eğer belirlediğiniz alanlara ait bir index varsa kullanılır, yoksa sıralı arama yapılır.

Diğerlerine nazaran daha fazla kullanılması tavsiye edilir.

LocateTable1.Locate(‘adi;soyadi’,VarArrayof([‘Ahmet’,’SAVAŞ’]),

[loCaseInsensitive,loPartialKey]) şeklindedir.   loCaseInsensitive: Büyük harf-küçük harf

ayrımı yapılmaz. loPartialKey: Bunu kullanırsanız eğer sadece

SAVAŞ’ı değilde eğer SAVAŞÇI da varsa onuda bulabilirsiniz.

Lookup

3 parametre alır. Hangi sütun üzerinde arama yapılacak. Sonra alınacak değerler Arama işlemi olumlu sonuçlandıysa,

döndüreceği alan değerleri. Birden fazla sütun adı varsa araya “;” Lookup fonksiyonunu bir örnekte

kullanın.

STATE

Table’ın durumu için kullanılan bir metottur.

İf table1.state in [dsinactive,dsedit,..]

Table durumuna göre işlem yapılmasını sağlar.

TQuery:

Bu bileşende TTable bileşeni ile hemen hemen aynıdır. Fakat bu bileşen ve SQL yardımı ile kayıtlar üzerinde sıralama, sadece belli kayıtları görüntüleme vb. işlemler çok daha rahat yapılabilmektedir. Aynı şeyler TTable bileşenin Filter, Range gibi özellikleri kullanılarak da yapılabilir.

TQuery:

Fakat, performans açısından bakıldığında TQuery’leri kullanmak her zaman faydalıdır. Query’ler normalde Read-Only’dirler, yani kayıtlar üzerinde değişiklik yapamazsınız.

TQuery - RequestLive

Eğer kayıtlar üzerinde değişiklik yapmak istiyorsanız, RequestLive özelliğini True yapmalısınız

Yapılan değişiklikleri table'da olduğu gibi kaydedebilirsiniz. Fakat SQL cümleciğiniz birkaç tablodan veri alıp getiriyorsa o zaman RequestLive özelliğini kullanmazsınız

TQuery - CachedUpdates

Bu şekildeki query’ler üzerinde değişiklik yapabilmeniz için önce CachedUpdates özelliğini True yapmalısınız. (RequestLive:=False)

CachedUpdates özelliği True yapıldığında kayıtlar üzerinde güncelleme, değiştirme ve silme yapabildiğinizi göreceksiniz

TQuery - CachedUpdates

form1.Table1.RequestLive:=False

form1.Table1.CachedUpdates:=true; form1.Table1.edit;

TUpdateSQL

Fakat bu değişiklikler sadece programda kalır ve fiziksel veritabanını etkilemez. Yaptığımız değişikliklerin kalıcı olması olması için TUpdateSQL bileşenini kullanırız.

TStoredProc:

Bu bileşen SQL tabanlı veritabanları üzerinde yazdığınız prosedürleri veya fonksiyonları kullanmanızı sağlayan bir bileşendir. Eğer Oracle, Sysbase, SQL Server gibi veritabanı kullanmıyorsanız bu bileşene ihtiyacınız yok demektir

TStoredProc:

Avantajları temel olarak şunlardır. Bu çalıştıracağınız prosedürler veritabanı üzerindedir. Normal kullandığınız query’lere göre çok daha hızlı çalışırlar. Network trafiğini asgari seviyeye indirirler. Yazacağınız prosedürle ilgili kullandığınız veritabanının dökümatasyonuna bakmalısınız.

TDatabase:

Bu bileşeni yönetim kolaylığı sağlamak için kullanılbilir. Mesela A1 diye BDE alias’ınız var. Projedeki bütün herşey hepsi buna bağlı. Bunun ismini değiştirdiğinizde bütün projede gidip aliasları değiştirmeniz gerekir. Bunun yerine TDatabase bileşenini kullanırsanız, sadece bu bileşenin alias’ını değiştirdiğinizde projede buna bağlı ne kadar bileşen varsa hepsini etkileyecektir.

TDatabase:

TDataSource: Verilerinizin data controls

sayfasındaki bileşenler yardımı ile görüntülenmesi için table,query vb. gibi datasetleri mutlaka bir DataSource’a bağlamnız gerekir.

Kısaca Table, Query gibi nesnelerle VT’ye bağlantı kurulur. Vt’deki verileri ekrana basmadan önce datasetleri DataSource’ aktarılmalıdır.

HKN
delphi 5 kitabı sayfa 377 deki örnek eklenecek

TDataSource:

Kayıtlar - Gezinti

Bildiğimiz gibi tablodaki kayıtlar üzerinde hareketimizi sağlayan dataset metodları vardır.

Prior, Next, First, Last bunlardan bazılarıdır.

Next true değeri aldığında EOF, prior true değeri aldığında ise BOF olacaktır.

Kayıtlar - Gezinti

İlk kayıt üzerindeyken bir önceki kayıda gidemeyiz. Çünkü BOF o anda true değerindedir. İlk kayıt üzerinde prior yaptığımızda değerimiz hala ilk kayıtta durur.

Kayıtlar - Gezinti

Son kayıt üzerinde bu durum geçerli değildir. Bunun nedeni ise son kayıt üzerinde next yaptığımız taktirde EOF true olsa dahi yeni bir boş kayıt açılır. (Ghost Record) bu yeni bir kayıt girilebilir anlamındadır.

Kayıtlar - Gezinti

Ayrıca Tablelar için post ve cancel methodları bulunur. Bu methodlar kayıt bazında gerçekleşmektedir. Kayıt üzerinde gerçekleşen değişiklikler post metodu ile kayıt edilir cancel metodu ile vazgeçilir. Eğer post veya cancel’ı çağırmadan başka bir kayda gidersek yine post metodunu devreye sokmuş oluruz.

Kayıtlar - Gezinti

Bir farklı uygulama ise kayıt girilirken ESC tuşuna basılırsa cancel metodu otomatik olarak devreye girer. Tabloya kayıt eklerken Append veya insert, kayıt silerken ise delete kullanmamız gerekmektedir.

top related