Örnek: Veritabanındaki Kayıtları Güncelleme/Silme

Top  Previous  Next

İşlem formu elemanlarını kullanarak, bir sayfa oluşturacağız. Amacımız; productdb veritabanında bulunan ürünleri sayfada listelemek, ürünlerin güncellenebilmesini ve silinebilmesini sağlamaktır.

Sağlanacak işlevler:

1. Kayıtları Güncelleme

Kullanıcılar, kayıtları sayfa üzerinde değiştirebilir ve "Güncelle" komut düğmesine basabilirler. Bunun üzerine; girdi alanları doğrulanacak ve değişen kayıtlar veritabanında güncellenecektir. Ek olarak bir e-posta alıcısı; örneğin sistem yöneticisi, e-posta ile bu değişiklikten haberdar edilecektir.

2. Kayıtları Silme

Kullanıcı, silmek istediği kayıtların seçim kutularını işaretleyebilir ve "Sil" komut düğmesine basabilir.

İlk işlevi gerçekleştirmek için, RelDBUpdateProcess ve SendTextMailProcess elemanlarını kullanacağız ve bunları "Güncelle" adlı komut işletim elemanına  bağlayacağız.

Seçilen kayıtları silmek için ise sadece RelDBUpdateProcess elemanını kullanıp, "Sil" adlı komut işletim elemanına bağlayacağız.

 

Kabuller:

productdb bir MS SQL veritabanıdır ve; jdbc:jtdc:sqlserver://localhost:1433/productdb URL' i üzerinden hizmet vermektedir.
products tablosu ürün kayıtlarını içermektedir.
products tablosu ID, Name, Price, Stock ve Discounted adlı alanları içermektedir.

 

 

Adımlar:

1. Veri Kaynaklarını Belirleme
 

"CTRL + F7" kısayolu ile "Genel Tanımlar" sayfasını açın.
Kütüphaneden mor > RelDB > RelDBConnection elemanını alın, sayfaya yerleştirin ve özelliklerini şöyle belirleyin:

 

Ad

PRODUCT_DB

JDBC Sürücüsü

net.sourceforge.jtds.jdbc.Driver

Veritabanı URL'i

jdbc:jtdc:sqlserver://localhost:1433/productdb

Kullanıcı Adı

??

Parola

??

 

Kütüphaneden mor > ReDB > RelDBQueryDataSource elemanını alın, sayfaya yerleştirin ve özelliklerini şöyle berlirleyin:

 

Eleman Adı

allproducts

Bağlantı Adı

PRODUCT_DB

Sorgu (SQL)

SELECT * FROM products

 

2. Güncelleme Sayfamızın Oluşturulması

Yapacağımız işlemler tamamlanınca, "Update" sayfamızın görüntüsü aşağıdaki gibi olacaktır:

Sayfa Tasarım Alanı Görünümü:

 

example1_page

Proje Kaşifi Görünümü:

example1_prjexp

"Update" adı ile yeni bir sayfa oluşturun.
"ProcessForm" Elemanını sayfaya yerleştirip, adına "UpdateForm" verin.
"ProcessForm > ProcessBlock" elemanını  "UpdateForm" içine yerleştirip adına "UpdateBlock" verin.
"UpdateBlock" un, Tekrarlama | Her Bir .. İçin özelliğine "/allproducts/item" verin.
"ProcessForm > ProcessBlock > SelectionBox" elemanını "UpdateBlock" içine yerleştirin.
Üç adet "ProcessForm > ProcessBlock > EditBox" elemanını "UpdateBlock" içine yerleştirip, adlarına "Name", "Price" ve "Stock" verin.
"ProcessForm > ProcessBlock > CheckBox" elemanını "UpdateBlock" içine yerleştirip, adına "Discounted" verin.
"ProcessForm > ProcessBlock > HiddenBox" elemanını "UpdateBlock" içine yerleştirip, adına "ID" verin.

 

3. Güncelleme İşlevinin Sağlanması

"mor > RelDB > RelDBUpdateProcess" elemanını "UpdateBlock" içine yerleştirin ve "ProcessUpdateRecord" adını verin.
"ProcessUpdateRecord" elemanının özelliklerini aşağıdaki gibi belirleyin:

 

Bağlantı Adı

PRODUCT_DB

Güncelleme Sorgusu (SQL)

  UPDATE products SET

    Name = '@vof(Name)',

    Price = @vof(Price),

    Stock = @vof(Stock),

    Discounted = @vof(Discounted)

  WHERE ID = @vof(ID)

 

"mor > Mailer > SMTPAccount" elemanını "Genel Tanımlar" sayfasına ekleyin.
SMTPAccount elemanının SMTP Hesabı özelliklerini belirleyin.
"TextMailProcess" elemanını "UpdateBlock" içine yerleştirip, adına "ProcessSendMail" verin.
"ProcessSendMail" elemanının özelliklerini aşağıdaki gibi belirleyin:

 

Posta | Kime

admin@mydomain.com

Posta | Konu

Kayıt @vof(ID) güncellendi

Posta | Mesaj

Kaydın yeni değerleri:

 

    Adı       : @vof(Name)

    Fiyat     : @vof(Price)

    Stok      : @vof(Stock)

    İndirim   : @vof(Discounted)

 

"ProcessForm > ExecuteCommand" elemanını "UpdateForm" içine yerleştiriniz. Adına; "CommandUpdateRecord" verin.
Değer özelliğine "Güncelle" verin.
İşlem Listesi özelliğine odaklanıp, editörden "ProcessUpdateRecord" and "ProcessSendMail" işlemlerini ekleyin.

 

example1_processlist

 

Sonraki Sayfa özelliği için "\index" sayfasını seçin.
Hata Sayfasından Sonraki Sayfa özelliği için "\Update" sayfasını seçin.

 

4. Silme İşlevinin Sağlanması

"mor > RelDB > RelDBUpdateProcess" elemanını "UpdateBlock" içine yerleştirip, adına "ProcessDeleteRecord" verin.
"ProcessDeleteRecord" elemanının özelliklerini aşağıdaki gibi belirleyin:

 

Referans Verikaynağı

allproducts

Güncelleme Sorgusu (SQL)

DELETE FROM products WHERE ID = @vof(ID)

 

"ProcessForm > ExecuteCommand" elemanını "UpdateForm" içine yerleştirip, adına "CommandDeleteRecord" verin.
Değer özelliğine "Sil" verin.
İşlem Listesi özelliğine odaklanıp, editörden "ProcessDeleteRecord" işlemini ekleyiniz.
Sonraki Sayfa özelliğinde "\index" sayfasını seçin.
Hata Sayfasından Sonraki Sayfa özelliğinde "\Update" sayfasını seçin.

 

Adımlarımızı tamamladık. Eğer MS SQL veritabanınız da hazır ise; projenizi derleyip test edebilirsiniz.

"Update" sayfasının tarayıcıdaki görüntüsü, aşağıdakine benzer olacaktır.

example1_browser