39
DELPHI de Veritabanı Veritabanı Bileşenleri ve Kullanımı

DELPHI de Veritabanı

  • Upload
    karah

  • View
    55

  • Download
    0

Embed Size (px)

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

Citation preview

Page 1: DELPHI de Veritabanı

DELPHI de Veritabanı

Veritabanı Bileşenleri ve Kullanımı

Page 2: DELPHI de Veritabanı

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.

Page 3: DELPHI de Veritabanı

Delphi 5 için VT bileşenleri

Page 4: DELPHI de Veritabanı

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.

Page 5: DELPHI de Veritabanı

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

Page 6: DELPHI de Veritabanı

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.

Page 7: DELPHI de Veritabanı

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

Page 8: DELPHI de Veritabanı

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.

Page 9: DELPHI de Veritabanı

TTABLE Önemli özellikleri 3

Page 10: DELPHI de Veritabanı

Ö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;

Page 11: DELPHI de Veritabanı

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

Page 12: DELPHI de Veritabanı

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.

Page 13: DELPHI de Veritabanı

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.

Page 14: DELPHI de Veritabanı

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.

Page 15: DELPHI de Veritabanı

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.

Page 16: DELPHI de Veritabanı

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.

Page 17: DELPHI de Veritabanı

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

Page 18: DELPHI de Veritabanı

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.

Page 19: DELPHI de Veritabanı

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.

Page 20: DELPHI de Veritabanı

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.

Page 21: DELPHI de Veritabanı

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.

Page 22: DELPHI de Veritabanı

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.

Page 23: DELPHI de Veritabanı

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.

Page 24: DELPHI de Veritabanı

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.

Page 25: DELPHI de Veritabanı

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

Page 26: DELPHI de Veritabanı

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

Page 27: DELPHI de Veritabanı

TQuery - CachedUpdates

form1.Table1.RequestLive:=False

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

Page 28: DELPHI de Veritabanı

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.

Page 29: DELPHI de Veritabanı

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

Page 30: DELPHI de Veritabanı

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.

Page 31: DELPHI de Veritabanı

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.

Page 32: DELPHI de Veritabanı

TDatabase:

Page 33: DELPHI de Veritabanı

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
Page 34: DELPHI de Veritabanı

TDataSource:

Page 35: DELPHI de Veritabanı

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.

Page 36: DELPHI de Veritabanı

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.

Page 37: DELPHI de Veritabanı

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.

Page 38: DELPHI de Veritabanı

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.

Page 39: DELPHI de Veritabanı

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.