1. Accepttext

bayangkan situasinya sebuah column lagi diedit oleh user, trus user langsung save pakai short-cut ctrl+S, atau klik toolbar save. akibatnya datawindow akan mengasumsi column yg sedang diedit tersebut belum terjadi perubahan (event editchanged/itemchanged belum terjadi) karena event toolbar/menu clicked tadi lebih dulu terjadi. Akibatnya datawindow akan menyimpan data yang salah. Accepttext bertugas untuk "memaksa" datawindow untuk menerima informasi apapun yg tertera di tiap columns. Itu sebabnya untuk lebih aman gunakan acceptext sebelum update. Kecuali untuk keperluan2 khusus developer sangat yakin dengan validitas data, gak ada yg larang untuk lgsg update

2. perlakuan update

update adalah method pada datawindow, fungsinya untuk mengembalikan informasi ke database apa adanya sejak terakhir di retrieve. bayangkan data awal saat diretrieve adalah 3 rows, kemudian user menghapus 1 row, menambah 2 rows dan me-edit 1 row. Datawindow akan menyimpan semua informasi tsb pada datawindow buffer, original, inserted, deleted, modified masing2 = 3, 2, 1, 1, informasi ini akan dikembalikan ke database apa adanya. tinggal skrg database akan melakukan crosscheck apakah data2 memenuhi persyaratan (rules, constraint, trigger, dll), bisa sukses bisa gagal. kegagalan bisa macem2, gagal dimasalah hardware atau di logika (rules2 tadi), maka akan sangat bijak kalau pada saat perintah update dilakukan dicek nilai kembalian (return value) dari database dengan perintah update() = 1 tsb.

3. commit/rollback

jika gagal biasanya database akan auto rollback, artinya semua informasi dari datawindow akan dibatalkan semuanya atau yg terakhir, jika sukses maka sebaiknya datawindow buru2 melakukan commit agar tidak terjadi dirty read/locking. Sekali lagi luangkan waktu untuk menulis commit/rollback secara manual untuk menghindari kemungkinan2 yg gak bisa kita prediksi kedepan dan ujung2nya tools disalah2in :) bayangkan bila user lain membaca data keuangan dimana salah satu row nya telah berubah tapi belum di commit, akibatnya database akan menampilkan data sebelum di commit, pdhl kenyataannya data tsb telah berubah, data yg dicetak hari ini berbeda dengan data yg ada di database (setelah proses commit terjadi). Atau kemungkinan lain, user yg lain kan "menunggu" sampai proses commit terjadi, ini yg paling sering terjadi. akibatnya yg disalahin adalah tools/database, mereka bilang lamaaa banget neh program, coba tambah memory.. hehehe


sincerelly 'n met thn baru


>

dear pber's

pada saat saya memperhatikan video yg

hardest berikan ada sedikit yg mengganjal dipikiran saya.


- kenapa waktu menyimpan data tdk menggunakan dw_1.accepttext? krn saya

selalu begitu, saya kurang paham dgn penggunaan accepttext, acuan saya

adalah bukunya syahrial chan yg selalu ngajarin gitu kalo mau nyimpan.


- menggunakan accepttext atau tidak apa sih bedanya

- lalu kalo saya perhatikan, di pb ini terkadang saya heran dan takjub

karena utk menyimpan data cukup dgn satu baris saja, apakah emg kodenya cuma

segitu? yaitu dgn dw_1.update(true)?


- o ya satu lagi, saya juga kalo mau nyimpan menggunakan kode spt ini

dw_1.update=1 trus commit;

tapi kalo saya lihat, hardest sama sekali tidak menggunakan kode spt itu,

melainkan cuma update(true), tolong jelaskan perbandingan dgn kode yg biasa

saya pakai dgn yg pak hardest pakai, krn sptnya sedikit berbeda tapi

hasilnya sama,


sorry kalo kurang berkenan atas pertanyaan saya yg panjang. maklumlah krn

ingin sekali bisa spt anda-anda yg sudah jago, kalo sy mah msh betina yg mau 

berevolusi

utk menjadi jago :-))


atas tanggapanya thanks so much


rudi


 





-- 

Best regards,

 sandy                            mailto:[EMAIL PROTECTED]

__._,_.___

-----------------------------------------------
IndoPB - Indonesia PB User Group
An Indonesian PowerBuilder User Group's Event
2nd PowerBuilder Update
Rumah Sakit Jantung Harapan Kita
26/27 August 2006
To Register :
http://groups.yahoo.com/group/indopb/database?method=addRecord&tbl=4




Your email settings: Individual Email|Traditional
Change settings via the Web (Yahoo! ID required)
Change settings via email: Switch delivery to Daily Digest | Switch to Fully Featured
Visit Your Group | Yahoo! Groups Terms of Use | Unsubscribe

__,_._,___

Kirim email ke