|
IBDataset Kullanımı
IBDataset Kullanımı
Aşağıda yazdıklarım Delphi 7 içindir...
Bismillah
Öncelikle interbase de bir aşağıdaki gibi bir tablo oluşturalım....
CREATE TABLE "DENEME"
(
"IDNO" DOUBLE PRECISION NOT NULL PRIMARY KEY,
"ADI" VARCHAR(25),
"SOYADI" VARCHAR(25),
"TEL" VARCHAR(15)
);
Yukardaki tablomuzda 1 adet primary keyimiz var. Bu alanı Auto inc alan olarak
kullanacağız o yüzden bu alanda otomatik artan sayı yı takip edebilmek için bir
tane de generator oluşturalım.
CREATE GENERATOR "AUTOINCDENEME"
Bu işlemleri yaptıktan sonra delphiye geçelim ve Datasetin nasıl kullanıldığına
bakalım şimdi...
Önce File-> New Menüsünden bir datamodule oluşturalım. Üzerine bir adet
IBDatabase ve bir tane IBTransaction bir tane de IBDataset koyalım. IBDatabase
in database bağlantılarını yapalım, Transactiona bağlayalım, transactionu da
IBDatabase bağlayalım ve geçelim IBDatasete ve ağaıdakileri sırayla yapalım.
1. Object Inspectordeki SelectSQL özelliğne tıklayarak gelen SQL Text e "SELECT
* FROM DENEME" yazalım. (Zaten Table bölümünde tablomuzu görürüz) Bu SQL kodunu
yazdıktan sonra OK tuşuna basarak bu pencereyi kapatalım
2.IbDatasetin üzerine sağ tıklayarak Dataset editore girelim. Bu pencerede
"Table Name" bölümünde SelectSQL özelliğine yazdığımız tablomuzun seçilmiş
olduğunu, "Key field" ve "Update field"
bölümlerinde ise tablo alanlarımızın olduğunu ve bunların mavi olarak seçilmiş
olduğunu görürüz. Şimdi "Get Table field" Butonuna bir kez basarak tablomuzun
default alanlarının datasetimize akışını sağlayalım.
(Aslında bu yapılmıştır editoru açtığımızda ama bir kez daha yapmanın bir zararı
yok.) Data sonra sırayla "Dataset Default" ve "Select Primary Key" butonlarına
basalım. "Select Primary key" butonuna bastığımızda
Key fieldımızın otomatik olarak seçildiğini göreceksiniz.
3.Şimdi durum şöyle olmalıdır. "Key Field" alanında sadece IDNO seçili, "Update
Field" alanında ise bütün fieldlarımız seçili olmalıdır. PEnceremiz bu şekilde
ise en altta ki "Generate SQL" butonuna basalım.
4.Şimdi Yukardaki SQL sekmesinden Dataset editorumuzun neler yaptığına bi göz
atalım. "Generate SQL" Butonuna bastığımızda Datasetimiz otomatik olarak Update
işlemlerinde kullanacağı kendi SQL Text lerini yazdığını görürüz modify,insert,
delete,refresh radio butonlarına sırayla basarak neler yaptığını görün. (Şayet
tablonuzda bir değişiklik yaparsanız bu işlemleri tekrar yapmalısınız. Yoksa
dataset düzgün çalışmayacaktır.) Bu işlemleri yapmadan dataseti
Kullanmaya kalkarsanız dataset readonly olarak çalışacaktır.
5.Ok tuşu ile bu pencereyi kapatalım ve Object inspector deki Generator field
alanının sağındaki ... noktaya tıklayalım. Karşımıza bir pencere açılacaktır. Bu
pencerenin en üzerindeki combobox ın okuna tıkladığımızda oluşturduğumuz
"AUTOINCDENEME" generatorunun orda oldğunu görceksiniz. Bu generatoru seçelim.
filed alanına geçelim.
Bu alan generatorde oluşturulan sayının hangi tablo alanına kaydedileceğinin
seçildiği yerdir. Tabiki primary key olarak tasarladığımız
IDNO alanını seçmeliyiz. Increment by alanı ise Autoinc sayının kaçar kaçar
artırılacağını belirler. Şayet 2 yazarsanız Autoinc alanın 2 şer 2 şer arttığını
görürsünüz. Buraya 1 yazalım ve alttaki alana geçelim. Burda 3 tane seçenek var.
On NEw recordu seçerseniz Autoinc sayı yeni kayıt için insert işlemi
tetiklendiğinde oluşturulacaktır ki bu insert işleminden vazgeçmeniz halinde
sayı olduğu gibi kalacak anlamına gelirki her vazgeçme işleminde extra bir
artırım anlamına gelir. Bunu kullanmayın bence. On Post u seçin. Çünkü tabloya
post komutu gittiğinde generator tetiklenecektir. ve kaydetme anında sayı
artırılacağından daha sağlıklı olacaktır. On server ı kullanmanız gereksiz
şimdilik.
Ok tuşuna basalım ve penceremizi kapatalım. Datasetimizin active özelliğini true
yapalım ve bitirelim. Datasetimiz kullanmaya hazırdır. Normal bir table bileşeni
gibi gönül rahatlığı ile kullanabiliriz artık.
Unutmayalım ki Delphiyi yazanlar IBQuery nesnesiini Sorgulama için, IBTable
nesnesini Geriye uyumluluk için, dataset nesnesini ise
kaydetme,silme, ve güncelleştirme için yazmışlardır. Her componenti yazıldığı
şekle uygun kullanırsanız başınızı
ağrıtmayan bir programınız olacaktır.
Sevgiler...
bimeks borland component database delphi delphi.net delphi dersleri firebird help interbase makale oracle
seminer software sybase veritabanı web
|
|
|