Client Server Metotologi

Client Server Metotologi

Client Server Metotologi

Client Server Metotologi

Client-server adalah model komunikasi yang diterapkan dalam aplikasi komputer, dimana server disini berfungsi sebagai penyedia yang melayani kebutuhan client dalam hal ini khususnya data yang disimpan dalam database server. Aplikasinya sendiri dapat tersimpan pada komputer client. Database yang tersimpan pada server digunakan secara bersamaan oleh banyak user. Untuk itu diperlukan metodologi khusus yang menangani trafic agar terhindar dari tabrakan informasi yang menyebabkan informasi tidak berjalan sebagaimana mestinya.

Deleting

Jika sebuah record telah dihapus oleh seorang user (didalam tabel yang terdapat pada database server), dan user yang lain berusaha mengedit record tersebut (pada buffer recordsetnya), maka seharusnya ia akan mendapatkan pesan error untuk itu. Tetapi, tentu saja ini tergantung dari driver dan cursor type yang digunakan.

Jika kita telah mendapatkan pesan error tentang hal ini, maka mungkin kita ingin me-refresh kembali recordset tersebut. Tetapi dengan merefresh sebuah recordset dapat memberatkan beban kerja jaringan (network) dan tentu saja memperlambat kinerja aplikasi kita. Untuk itu ada beberapa macam “kontradiksi” ketika kita menangani hal ini:

Berikut ini adalah beberapa hal yang akan terjadi ketika kita berusaha menghapus sebuah record untuk Driver yang berbeda:

SQL Server Native  –  Kita tidak akan mendapatkan pessan error sama sekali

SQL Server ODBC –  akan terjadi Deadlock

Access OLE DB Provider  –  segera memberi peringatan jika kita akan menghapus dan mengedit sebuah record pada saat yang bersamaan!

Adding

Kita harus ingat, bahwa didalam aplikasi Multi-User, banyak user yang secara bersamaan memanipulasi sebuah data (baik itu menambah, menghapus ataupun merubah data). Kita haruslah selalu mempersiapkan penanganan masalah ini karena sangat mempengaruhi integritas data yang terdapat pada database server kita seperti yang kita diskusikan sebelumnya. Ketika kita menambah sebuah record pada suatu object recordset, user lain tidak akan melihat penambahan tersebut kecuali jika ia menggunakan Dynamic cursor. User tersebut  haruslah me-refresh kembali recordsetnya untuk melihat penambahan yang kita lakukan. Begitu juga sebaliknya.

Requery dan Resync

Ada 2 (dua) metode berbeda yang dapat kita gunakan untuk me-refresh kembali sebuah recordset. Metode Refresh( ) akan membentuk kembali semua isi dari recordset tersebut berdasarkan tabel/data yang dimintanya dari database server dengan menjalankan kembali perintah SQL untuk recordset tersebut. Metode Requery hanya akan me-refresh row-row tertentu saja yang kita inginkan. Sebagai contoh, kita dapat me-refresh data yang sedang diedit saja (current row) ataupun kesemua row (baris).

Checking Status Update Batch Locking

Jika salah satu dari data/row gagal di-update, maka kita dapat mencari tahu row yang gagal di-update tersebut. Untuk melakukan ini kita dapat menggunakan metode Filter yang terdapat didalam objek Recordset, passing sebuah konstanta spesial dan sebuah recordset baru yang berisi data yang gagal tersebut akan dibuat. Kita dapat memeriksa propertynya satu-per-satu untuk mencari tahu record/row mana yang gagal di-update.

Private Sub cmdCheck_Click()
Dim oRS As Recordset
Dim strSQL As String

On Error Resume Next

strSQL = “Select * FROM Karyawan Where Nama LIKE ‘S%’”

‘*** Gunakan Cursor Location = adUseClient

Set oRS = New Recordset
oRS.Open strSQL, oLogin.Connection, adOpenKeyset, adLockBatchOptimistic

Do Until oRS.EOF
Debug.Print oRS!Nama

‘Start Editing data
oRS!Tanggal_Masuk = Now
oRS!Status = 1
oRS!Concurency_id = 2

oRS!MoveNext
Loop

oRS.UpdateBatch

‘Kita dapat menggagalkannya dengan –> oRS.CancelBatch

If Err.Number Then
‘Sekarang periksa statusnya
Set oRS = oRS.Filter = adFilterAffectedRecords
oRS.MoveFirst
Do Until oRS.EOF
Debug.Print oRS!Nama

If oRS.Status <> adRecModified Then
MsgBox “Record ini tidak ter-update: ” & oRS!Nama
End If
oRS.MoveNext
Loop
End If

oRS.Close

End Sub

Sumber : https://fascinasiansblog.com/