Mau nambahin/koreksi.. lihat di bawah

sandy wrote:
>
>  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
>
AcceptText akan mentrigger event itemchanged atau itemerror -sesuai
dengan validasi yang ada-.
Jika user sedang edit di suatu column dan tidak berpindah ke column lain
maka datawindow masih tetap menyimpan data sebelum diedit pada column
tersebut, meskipun user pindah ke kontrol.
Jangan memanggil function AcceptText pada event losefocus di datawindow
atau event/function yang dieksekusi oleh event losefocus tsb. Dapat
menyebabkan infinite loop.
Karena jika data yang dimasukkan tidak memenuhi validasi maka event
itemerror akan menampilkan messagebox dan mentrigger event losefocus
pada datawindow tsb.
Detail nya bisa dilihat di help "AcceptText method (DataWindows)"

>  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.
>
Update berfungsi untuk mengirimkan perubahan data pada dw control.
Perubahan yang terjadi adalah Insert, Update, Delete.
Sedangkan buffer penyimpan data di dw control hanya 3 Primary, Filter,
dan Deleted.
Untuk mengetahui data mana yang berubah, bisa dilihat dengan function
getitemstatus, bisa per column maupun per baris. Status perubahannya
dinamakan DWItemStatus
Untuk mengetahui bahwa DW control pun telah berubah bisa dengan function
ModifiedCount, DeletedCount, hanya saja ModifiedCount belum berubah jika
baris baru tersebut belum ada perubahan data.

>  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]
>  <mailto:[EMAIL PROTECTED]>
>
>   <!-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family:
>  Arial; margin: 14px 0px; padding: 0px 14px; } #ygrp-mkp hr{ border:
>  1px solid #d8d8d8; } #ygrp-mkp #hd{ color: #628c2a; font-size: 85%;
>  font-weight: bold; line-height: 122%; margin: 10px 0px; } #ygrp-mkp
>  #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{ padding: 0 0; } #ygrp-mkp
>  .ad a{ color: #0000ff; text-decoration: none; } --> <!--
>  #ygrp-sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc
>  #hd{ margin: 10px 0px; font-weight: bold; font-size: 78%;
>  line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad{ margin-bottom: 10px;
>  padding: 0 0; } --> <!-- #ygrp-mlmsg {font-size:13px; font-family:
>  arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;}
>  #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select,
>  input, textarea {font:99% arial,helvetica,clean,sans-serif;}
>  #ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;}
>  #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family: Georgia;
>  } #ygrp-text p{ margin: 0 0 1em 0; } #ygrp-tpmsgs{ font-family:
>  Arial; clear: both; } #ygrp-vitnav{ padding-top: 10px; font-family:
>  Verdana; font-size: 77%; margin: 0; } #ygrp-vitnav a{ padding: 0 1px;
>  } #ygrp-actbar{ clear: both; margin: 25px 0; white-space:nowrap;
>  color: #666; text-align: right; } #ygrp-actbar .left{ float: left;
>  white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{
>  font-family: Verdana; font-size: 77%; padding: 15px 0; } #ygrp-ft{
>  font-family: verdana; font-size: 77%; border-top: 1px solid #666;
>  padding: 5px 0; } #ygrp-mlmsg #logo{ padding-bottom: 10px; }
>  #ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px; padding:
>  2px 0 8px 8px; } #ygrp-vital #vithd{ font-size: 77%; font-family:
>  Verdana; font-weight: bold; color: #333; text-transform: uppercase; }
>  #ygrp-vital ul{ padding: 0; margin: 2px 0; } #ygrp-vital ul li{
>  list-style-type: none; clear: both; border: 1px solid #e0ecee; }
>  #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900; float:
>  right; width: 2em; text-align:right; padding-right: .5em; }
>  #ygrp-vital ul li .cat{ font-weight: bold; } #ygrp-vital a{
>  text-decoration: none; } #ygrp-vital a:hover{ text-decoration:
>  underline; } #ygrp-sponsor #hd{ color: #999; font-size: 77%; }
>  #ygrp-sponsor #ov{ padding: 6px 13px; background-color: #e0ecee;
>  margin-bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px;
>  margin: 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding:
>  6px 0; font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration:
>  none; font-size: 130%; } #ygrp-sponsor #nc{ background-color: #eee;
>  margin-bottom: 20px; padding: 0 8px; } #ygrp-sponsor .ad{ padding:
>  8px 0; } #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight:
>  bold; color: #628c2a; font-size: 100%; line-height: 122%; }
>  #ygrp-sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad
>  a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin:
>  0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; } #ygrp-text tt{
>  font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq{margin:4}
>  -->



-----------------------------------------------
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 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/indopb/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/indopb/join
    (Yahoo! ID required)

<*> To change settings via email:
    mailto:[EMAIL PROTECTED] 
    mailto:[EMAIL PROTECTED]

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 

Kirim email ke