Troia’da 27. eğitim yazımızda UPDATE işlemine bakacağız.

Senaryomuz şöyle olacak. Verilerimizi listeledikten sonra bir veriyi seçip CHANGE ile detaya gidip istediğimiz alanı güncelleyip kaydedeceğiz.

MODI=1;

MSG='Değiştirilecek Veri Seçmediniz';

IF PERSONELBILGISI_SELECTED == 1 THEN
	CALL DIALOG EDUPERSON02;
ELSE
	MESSAGE EDU I302 WITH MSG;
ENDIF;

Detayda SAVE butonuna şu kodları yazıyoruz.

BEGINTRAN;

SWITCH MODI 
CASE MODI=1:
	UPDATE PERSONELBILGISI
		WHERE PERSONELN0 = PERSONELBILGISI_PERSONELNO 
			AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
			AND MAIL = PERSONELBILGISI_MAIL;

ENDSWITCH;


IF SYS_STATUS == 1 THEN
	ROLLBACKTRAN;
	
ELSE
	COMMITTRAN;
ENDIF;

Burada 2 tane konumuz var üzerinde durmamız gereken.

BEGINTRAN – ROLLBACKTRAN – COMMITTRAN

Bu yapı veri işlemleri yaparken çok önemli bir konumdadır.

Bir Update, Insert, Delete işlemi yapılırken kullanılan bu yapı herhangi bir yanlışlık olması durumunda bu yanlışlığın veri tabanına yansımasına izin vermez.

Bir sorgu işlemi başlamadan önce

BEGINTRAN;

ile başlanır. Daha sonra Update, Delete, Insert komutları yazılır.

UPDATE PERSONELBILGISI
		WHERE PERSONELN0 = PERSONELBILGISI_PERSONELNO 
			AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
			AND MAIL = PERSONELBILGISI_MAIL;

SYS_STATUS System Flag

IAS da öğrenmemiz gereken bir sistem Action’ı SYS_STATUS dür.

Bir sorgu işlemi eğer başarılı olursa SYS_STATUS değeri 0 döner.

Eğer sorguda bir hata olursa SYS_STATUS değeri 1 döner.

IF ile bu durumu kontrol edeceğiz. Eğer değer 1 dönerse ROLLBACKTRAN yaptırarak tüm işlemler veri tabanına işlenmeden geri alır.

Eğer 0 dönerse COMMITRAN yaparak tüm değişikliğin ana veri tabanı üzerine işlenmesini sağlarız.

UPDATE ederken dikkat etmemiz gereken duruma gelirsek. Yazmamız gereken sorgu kodu normal SQL kodlarından daha sadece ve yalındır.

Sadece UPDATE denir. Daha sonra ana tablomuzu listelediğimiz Grid ismi yazılır ve hangi şarta göre güncellenecekse WHERE ile şart yazılıp işlem tamamlanır.

Editboxların isimleri Grid kolonları ile eşlendiği için direk hepsini otomatik olarak değişiklik dahil sisteme kaydedecektir.

Öncelikle ilk değişiklikler Grid üzerine yansır. COMMITRAN işlemine ulaşılabilirsede Grid üzerindeki veriler ana tablomuz üzerine update edilmiş olur.

Görelim ekranlarımızı.

Seçtiğimiz kişinin Departman bilgisini Satış Pazarlama olarak güncelleyeceğiz.

Gördüğümüz gibi başarılı bir şekilde güncelleme işlemi gerçekleşti.

Programımızı biraz daha kullanıcı dostu hale getirelim.

Eğer başarılı bir işlem olmaz ise Güncelleme Gerçekleşmedi mesajını verelim.

Tablomuzda KEY alanlarımız vardı. O alanların Editboxlarının enable değerini false yapalım. Çünkü o değerleri değiştirmemesi gerek kullanıcının.

EDUPERSON2.AFTER

IF MODI == 2 THEN
	SET SAVE TO DISABLE;
	SET GROUPBOX2 TO DISABLE;
ELSE
	SET SAVE TO ENABLE;
	SET GROUPBOX2 TO ENABLE;
ENDIF;


IF MODI == 0 
		&& COPYR == 0 THEN
	PERSONELBILGISI_PERSONELNO='';
	PERSONELBILGISI_PERSONELNAME='';
	PERSONELBILGISI_PERSONELLASTNAME='';
	PERSONELBILGISI_BIRTHDATE=SYS_CURRENTDATE;
	PERSONELBILGISI_PHONENUMBER='';
	PERSONELBILGISI_DEPARTMENT='';
	PERSONELBILGISI_MAIL='';
	PERSONELBILGISI_STARTDATE=SYS_CURRENTDATE;
	PERSONELBILGISI_ADRESS='';
ENDIF;


IF MODI == 1 THEN
	SET PERSONELBILGISI_PERSONELNO TO DISABLE;
	SET PERSONELBILGISI_PHONENUMBER TO DISABLE;
	SET PERSONELBILGISI_MAIL TO DISABLE;
ELSE
	SET PERSONELBILGISI_PERSONELNO TO ENABLE;
	SET PERSONELBILGISI_PHONENUMBER TO ENABLE;
	SET PERSONELBILGISI_MAIL TO ENABLE;
ENDIF;

SAVE

BEGINTRAN;

IF MODI == 1 THEN
	
	UPDATE PERSONELBILGISI
		WHERE PERSONELNO = PERSONELBILGISI_PERSONELNO 
			AND PHONENUMBER = PERSONELBILGISI_PHONENUMBER 
			AND MAIL = PERSONELBILGISI_MAIL;
ENDIF;



IF SYS_STATUS == 1 THEN
	ROLLBACKTRAN;
	RETURN;
ENDIF;

COMMITTRAN;
MSG='Güncelleme İşlemi Gerçekleşti';
MESSAGE EDU I302 WITH MSG;

SHUTDOWN;

Sonuçlarımızı Görelim

Böylelikle başarılı bir şekilde UPDATE işleminide gerçekleştirmiş olduk.

Bir sonraki yazımda görüşmek üzere.

İçeriklerimizin Devamının Gelmesi İçin Destekçimiz Olabilirsiniz

What's Your Reaction?

hate hate
0
hate
fail fail
0
fail
fun fun
0
fun
geeky geeky
0
geeky
love love
0
love
lol lol
0
lol
omg omg
0
omg
win win
0
win
Murat Bilginer
21 Şubat 1992 Doğumlu. Endüstri Mühendisi olarak Lisansını 2016 yılında tamamlamıştır. Industryolog Akademi - NGenius oluşumlarının kurucusudur. Şu anda kendi şirketi Brainy Tech ile hem Yazılım Hizmetleri Sunmakta Hem de Online Eğitimler Vermektedir.