VFP dalam melakukan proses client/server data mempunyai mekanisme proses built-in yg terdiri atas remote view (RV) dan SQL-Pass Through (SPT).
Bagi anda yg dulu bermain2 dg FP DOS pasti sudeh terbiasa dg FLOCK() dan RLOCK(), kemudian ada reminder/peringatan agar close semua data/database dulu sebelum reindex/reorganisasi data. Kenapa ? Karena hal itu hanya bisa dilakukan dlm kondisi open/use data secara EXCLUSIVE.
Apakah FLOCK() dan RLOCK() sudah tdk dipakai lagi ? VFP pada dasarnya masih mengenal kedua perintah tersebut.
Lalu bagaimana penerapan client/server atau multi user di VFP ?
Anda bisa memakai sistem “Buffering” !!
Lalu apa “buffer” itu ?
“Buffer” pada dasarnya dipakai untuk memproteksi data pada saat proses update.
Baik secara single record (rlock()) maupun secara multiple record/table (flock()).
Buffer inilah yg bekerja secara sistem baik kala test, lock maupun release records/table.
Jadi pekerjaan update lebih gampang karena proses update multi usernya yg melakukan adalah VFP dengan buffer ini.
Pada saat FP DOS dulu anda akan bekerja secara langsung ke fisik table/data anda.
Di visual anda akan bekerja di lapisan buffer ini, setelah update baru data akan di kirim/simpan ke database/table fisiknya.
Lalu apa hubungannya dg SPT atau RV ?
Saat ini aplikasi yg dibuat dg vfp dapat mengakses beberapa database yg dibuat oleh pihak ke 3 seperti MsSQL, MySQL, Oracle dsb-nya.
Untuk mengakses database2 tsb ini dapat dimungkinkan karena adanya ODBC.
Proses updating datanya sendiri tdk langsung ke databasenya tetapi memakai fasilitas remote yg berbentuk cursor, dan ini bisa dilakukan oleh SPT atau RV.
Syaratnya SPT dan RV tersebut harus memiliki “key update” dan bisa menerima/melakukan perintah “send update”.
Artinya apa ? Pada saat kita ubah data di remote cursornya dan kita lakukan “save/simpan” maka perubahan itu akan di kirim kan ke table/database fisiknya.
Proses perintahnya sendiri berbentuk SQL Command yg diyakini cepat krn yg dikirimkan hanya berupa kalimat perintah, sedangkan proses update/modifikasinya dilakukan oleh database servernya.
Jika digambarkan posisi masing2 akan spt ini :
[ Database ] ODBC[ SPT/RV Cursor Updating/Query Aplikasi ]