|
|||||||
|
|
|
|||||
|
|
|||||||
Primary Key Anlatımı
Delphi * Hızlı Database uygulamaları geliştirmek
istiyorsanız !
Database Desktop 'ta .db dosyalarını hazırlayınız.
Dosyaları çalışma Directory'nıza saklayınız.(Alias tanımlayarak çalışmak daha
düzenli olacaktır )
Delphi arayüzünde Database menüsü - Form Wizard 'ını çalıştırınız. Sonrası
adımları uygun seçimleri yaparak (Simple Form ( Tek-Sade) Master / Detail ( İki Table
ilişkisel yada bağımsız aynı formda görünmesini istediğinizde ) Ttable ve Query (
Veritabanı kriter sorgulaması görünümü ) ile veritabanı alanlarının form
görüntüleri gibi seçenekleri ; Hazırladığınız veritabanı yolunu ve veritabanı
dosyası seçimi ) Next'lerle geçtikten sonra bunun otomatikman formda hazırlanmış
olduğunu göreceksiniz.
Bileşen property 'lerini inceleyerek bu işlerin nasıl yapıldığını
öğrenebilirsiniz.
Bu işi birde Wizard kullanmadan yapmayı deneyin.
* Database Desktop'ta Tasarladıdınız veritabanı alanlarının Primary Key 'lerini ( *
) birden fazla işaretlemekle kayıt giriş esaslarının işaretli alanlara indeksli
olduğunu göreceksiniz
Örnek;
Bu örnekteki cari_kod ve tarih alanları Primary Key olarak işaretlenmiştir.
CARI_KOD TARIH BORC
---------- ------------
M001 01.01.1990 1.000.000
M001 01.01.1998 2.000
M001 01.01.1999 3.000
M002 11.01.1990 500.000
# M002 12.02.1990 2.500.000
Bu örnekte aşağıdaki gibi bir kayıt girilmek istendiğinde
Database hatası oluşacaktır.
# M002 12.02.1990 3.000.000
Daha önceki kayıt birinci anahtar alanları aynı bilgiyi içermektedir.
* İndex
Veri Tablosu dizaynında İndexlenecek alan veya alanları (Primary Key Harici) Table
Properties - Secondary İndexes penceresinde tanymlayıp İndex dosyası adı
verebilirsiniz.
Örneğin;
Siparis_No;Tarih
Uygulamanızda Table1 nesnesinin IndexName özelliğinde bu indexin açılmış olduğunu
göreceksiniz.
Bu indexi uygulamanın herhangi bir yerinde kullanmak istediğinizde ;
var
i:integer;
begin
Table1.IndexDefs.Update;
for I := 0 to Table1.IndexDefs.Count - 1 do
if Table1.IndexDefs.Items[I].Fields = 'SiparisNo;Tarih'
{ Mevcut indexleme seçenekleri içerisinden Sipari_No;Tarih indexini buldudunda ... }
then
begin
Table1.IndexName := Table1.IndexDefs.Items[I].Name;
{Uygun Yndex No'sunu ata }
{Bu komut yukarıdaki Table1.IndexDefs.Update komutuna gönderme yapacaktır }
end;
end;
* 32 bit Delphi uygulamalarında değer atanmadan kullanılan dedişkenlerin icrasında
uyarı mesajı görüntülenir.Bu hata mesajını engellemek için
{$HINTS OFF}
Procedure............
end.
{$HINTS ON}
Derleyici Komutları Kullanılmalıdır.
* Uygulamalarımızda Windows-StatusBar componentini kullanmak oldukça basittir.
Form üzerine Win32-StatusBar 'ı ekledikten sonra StatusBar-SimpleText özellidini True
yapmalıyız.
Ardyndan bileşen ile ilgili kullanıcıya iletilmek istenen metinler, bileşenlerin
OnEnter Eventlerine
StatusBar1.Simple.Text:='Lütfen Sayı Giriniz'
*Dos kullanıcıları Enter tuşuna aşinadırlar.Oysa Windows tabanlı uygulamalarda alan dediştirme Tab tuşu ile yapılmaktadır.Enter tuşundan vazgeçmek istemeyen kullanıcılar için ...
//keypress eventine
if key=#13 then {Enter tuşuna basılmış ise}
Begin
Key:=#0;
Perform(cm_DialogKey,VK_Tab,0);
End;
*PROPERTY
Bu kavram ile projedeki herhangi bir formdan Property ile tanımlanmış dedişkene
yapılan atama (write) , dedişkenden yapılan atama (read)
Private
Procedure Setdate(Date:TDateTime);
Function Getdate:TDateTime;
Ylgili Procedure veya Function'yn tetiklemesini yapar.
Genel Kullanymy ;
Property Date:TDateTime Read Getdate Write SetDate
end;
Ba_ka bir Form'dan ;
Form1.Date:=StrToDate(Edit1.Text); //Date dedişkenine atama yapıldı . O halde
Property Write Setdate , Procedure 'nü dedişken değeri ile tetikle.
//Aynı şekilde Date değeri atanmak isteseydi. Read Getdate Function'u tetiklenecekti.
* SELF
Mevcut Procedure tetikle.
If Form1.ShowModal=mrOK then
Hesapla(Self);
//yine Form üzerine istenilen event ile bir component ekleyebilirsiniz.
Var
Dugme:TButton;
Begin
Dugme:TButton.Create(Self);
Dugme.Parent:=Self;
end;
http://members.delphi.com/emral/index.html