Delphi7'de InterBase DataSet Kullanı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.