Hello Jonathan,
 
Terakhir saya telah coba cara spt ini : 
Saya buat table Flag dengan satu field (Flag juga ) isi dari field ini hanya 0 dan 1, 
jika bierisi 1 (Client B setelah save data yg mengupdate table flag menjadi 1) form 
akan direfresh dan isi field akan dikembalikan di 0.
tapi saya masih kurang puas dengan cara seperti ini, masih makan resource besar. 
setiap saat masih harus mondar-mandir ke database untuk cek data saja. 
saya juga punya ide seperti anda, dengan menggunakan triger, tapi saya kesulitan untuk 
mengkap triger tersebut dari aplikasi yang saya buat. bagaimana ya... caranya delphi 
menangkap / menerima response triger tersebut...?????

Jonathan <[EMAIL PROTECTED]> wrote:
Hello Erik,

EH> saya mau membuat aplikasi database, misalnya ada 3 komputer
EH> (A,B, dan C). komputer A dan B adalah client, sedangkan komputer C
EH> dipakai database server. Client A menampilkan data report yang
EH> diambil dari database server (Komputer C),misalnya ada 10 record,
EH> Client B berisi aplikasi input data. 

EH> jika diinputkan suatu data dari Client B maka akan di save ke
EH> database server (Komp. C). bagaimana caranya report pada Client A
EH> datanya dapat berubah secara otomatis (menjadi 11 record), TANPA
EH> user menyentuh komputer A tersebut?????????????????????

EH> saya telah mencoba menggunakan thread yang akan merefresh
EH> report tersebut (Client A) secara terus menerus setelah kurun
EH> waktu tertentu. tapi teknik tersebut kurang bagus, apa ada yang
EH> punya ide yang lebih ok....???

Bila memang databasenya memiliki feature untuk mentrigger event,
mungkin bisa dimanfaatkan. Interbase dan firebird memiliki hal tsb,
sehingga kita bisa membuat trigger pada table tertentu, kemudian dalam
trigger tersebut akan menyalakan event, dimaka event tsb akan
dibroadcast ke semua client yang terkoneksi ke server tsb.
Implementasi detail saya tidak tahu karena saya sendiri tidak pernah
menggunakannya. Untuk database yang lain saya kurang tahu.

Cara lain adalah dengan metode pooling seperti yang sudah kamu
lakukan. Mungkin bisa dioptimize sedikit supaya Client A tidak perlu
merefresh report secara periodik. Buat sebuah table yang berisi
informasi tgl+jam terakhir sebuah table diupdate (Untuk selanjutnya saya
akan sebut table ini sebagai LastUpdateInfo). Table LastUpdateInfo ini
cukup berisi 2 field : NamaTable dan LastUpdate(DateTime). Lalu buatlah trigger di
table yang akan dimonitor, supaya setiap kali terjadi perubahan maka
akan mengupdate field LastUpdate di table LastUpdateInfo.
Jika databasenya tidak support trigger, berarti aplikasi di CLient
B-lah yang bertanggung jawab untuk mengupdate LastUpdateInfo tsb.

Nah client A secara periodik mencek isi dari LastUpdateInfo tsb. Bila
LastUpdate ternyata lebih baru daripada tgl dan jam terakhir client A
melakukan refresh, maka client A perlu melakukan refresh ulang.

salam

Jonathan L.



------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for your HP, Epson, Canon or Lexmark
Printer at MyInks.com. Free s/h on orders $50 or more to the US & Canada.
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/mOAaAA/3exGAA/qnsNAA/i7folB/TM
---------------------------------------------------------------------~->

Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] 

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


Kirim email ke