boleh sy tambahkan sedikit.

keuntungan update dengan blob adalah, client tidak perlu mapping drive ke 
server, cukup dengan ip saja.
tehnik dasarnya untuk otomatis update file diclient adalah sbb :

untuk server :
1. selain database utama, dibuat 1 database lagi untuk penampung khusus file 
pbd terbaru, cukup 1 table saja
2. field table nya kira2 seperti ini : "string namafile1", "blob file1", 
"string namafile2", "blob file2",  "integer lastversion" ( tergantung brp 
banyak pbd )
3. jika ada update program, kita masukkan pbd terbaru ke table diatas. dengan 
menggunakan script, rubah file pbd menjadi blob, agar bisa masuk ke database
4. naikkan nilai "lastversion" setiap ada update baru.

untuk client
1. di open event, connect ke database pbd, cek nilai "lastversion"
2. jika "lastversion" server > "lastversion" client, maka ambil + convert blob 
nya, dengan menggunakan script ( otomatis replace file di pc client )
3. naikkan nilai "lastversion" di client ( agar sama dengan server )

contoh script di client sbb ( dengan db sql anywhere ) :

////////////////////////BEGIN DOWNLOAD
transaction lt_app
lt_app = create transaction
// Profile blob2file
//.......
connect using lt_app ;
lb_ok  = TRUE ; lb_in = FALSE
if lt_app.sqlcode = 0 then
 li_ver = profileint("main.ini","main","ver",0)
 select versi into :li_app from main using lt_app ;
 IF li_ver <> li_app then  /// versi beda, download it, versi sama, skip to 
main program
  open(w_wait3) // beri window warning, karena prosesnya agak lama jika file 
besar...
  yield() 
  declare app cursor for 
  select namafile from prg using lt_app ;
  open app ;
  fetch app into :ls_nm ;
  DO while lt_app.sqlcode = 0
   yield()
   lb_in = TRUE
   setnull(ablb_blob) ; setnull(lblb_temp)
  
   selectblob object into :ablb_blob from prg where namafile = :ls_nm using 
lt_app ;
   f_err("")
  
   ll_FileLength = Len(ablb_blob)
  
   IF ll_FileLength > 32765 THEN
    IF Mod(ll_FileLength, 32765) = 0 THEN
     li_Loops = ll_FileLength / 32765
    ELSE
     li_Loops = (ll_FileLength / 32765) + 1
    END IF
   ELSE
    li_Loops = 1
   END IF
    
   li_FileNum = FileOpen(ls_nm, StreamMode!, Write!, LockReadWrite!, Replace!)
   if li_filenum = -1 then
    /// some error
    lb_ok = FALSE
   end if
   FOR li_Index = 1 TO li_Loops
    lblb_Temp = BlobMid(ablb_blob, ((32765 * li_Index) - 32765 + 1), 32765)
    li_err = FileWrite(li_FileNum, lblb_Temp)
    if  li_err = -1 then
     //// some error
     lb_ok = FALSE
    end if
   NEXT
  
   li_err = FileClose(li_FileNum)
   if li_err = -1 then
    lb_ok = FALSE
   end if
   fetch app into :ls_nm  ;
  LOOP
  close app ;
  
  if lb_ok and lb_in then
   SetProfileString("MAIN.INI","main", "ver", string(li_app) )
  end if
  
  close(w_wait3)

 END IF

END IF
disconnect using lt_app ;
destroy lt_app ;
//////////////////////////////END DOWNLOAD

untuk script di server, kira2 prosesnya adalah kebalikan dari script diatas

rgrds
setiawan

 
   ----- Original Message ----- 
  From: [email protected] 
  To: [email protected] 
  Sent: Friday, June 24, 2011 11:34 AM
  Subject: Re: [indopb] jalankan aplikasi pb 11 exe di jaringan agar lebih cepat


    
  Cara update client2 lwt database(blog) gimana caranya? 

  Sent from my BlackBerry® smartphone from Sinyal Bagus XL, Nyambung 
Teruuusss...!


------------------------------------------------------------------------------

  From: Hermawan Dephe <[email protected]> 
  Sender: [email protected] 
  Date: Fri, 24 Jun 2011 11:27:49 +0700
  To: <[email protected]>
  ReplyTo: [email protected] 
  Subject: Re: [indopb] jalankan aplikasi pb 11 exe di jaringan agar lebih cepat


    
  pecah2 PBD jadi lebih kecil aja pak.. agar bisa lebih ngirit bandwith..  
  tp kalo bagusnya sih nurut saya mending dicopy kemasing2 client2..untuk 
updatenya bisa lewat database (blob) nantinya..
  kalo pake PB 9 ke atas kayaknya dah aman jg deh dari PBKilller.. jadi gak 
perlu takut dibaca scriptnya.


  NASRULLAH ARUL wrote: 

      
    Master2 sy mau tanya untuk pb 11.5 jika pbd nya di jalankan lewat jaringan, 
di client lemot banget yah, lama sekali untuk buka menu, ada solusi agar dapat 
menjalankan lebih cepat...? dengan catatan tidak di kopikan ke local2 masing 
client.. terima kasih.




  

Kirim email ke