Dual Connection
Kali ini saya akan membagikan tips singkat, bagaimana membuat suatu aplikasi database menggunakan Visual Basic 6 yang terkoneksi dengan 2 database berbeda. Kasusnya adalah aplikasi ini bisa digunakan "offline" dan "online". "Offline" yang dimaksudkan di sini adalah aplikasi dibawa secara mobile menggunakan laptop. Kemudian posisi "Online" adalah aplikasi terkoneksi dengan database pusat ketika laptop tersebut ada pada jaringan kantor pusat. Pada saat "online" aplikasi bisa melakukan sinkronisasi data ( upload dan download ) sehingga data di kedua database sama. Database yang digunakan adalah Ms SQL Server 2000 untuk server pusat dan Ms Access untuk server lokal ( offline ). Database Ms Access digunakan karena instalasi yang sederhana, tidak serumit instalasi Ms SQL Server. Berikut langkah - langkah yang perlu dilakukan :
1. Pertama yang kita buat adalah connection string untuk kedua engine database tersebut.
Untuk SQL Server :
LogonStr = "PROVIDER=SQLOLEDB.1;DATA SOURCE= " & IPServer & ";initial catalog= " & DatabaseName & " ;User ID=user;Password=password;"
Untuk Ms Access :
LogonStr2 = "PROVIDER=Microsoft.ACE.OLEDB.12.0; Data Source=" & App.Path & "\databasename.accdb"
Untuk SQL Server :
LogonStr = "PROVIDER=SQLOLEDB.1;DATA SOURCE= " & IPServer & ";initial catalog= " & DatabaseName & " ;User ID=user;Password=password;"
Untuk Ms Access :
LogonStr2 = "PROVIDER=Microsoft.ACE.OLEDB.12.0; Data Source=" & App.Path & "\databasename.accdb"
2. Engine SQL pada kedua database tersebut ada beberapa perbedaan, oleh karena itu ada beberapa penulisan query ( SQL ) yang harus disamakan. Karena kebetulan kedua database dibuat oleh Microsoft maka tidak terlampau sulit untuk membuat penyeragaman.Salah satunya adalah SQL untuk menghapus record :
Jika pada SQL Server cukup : DELETE table_name WHERE..
di Ms Access harus menggunakan FROM : DELETE FROM table_name WHERE.., maka anda harus menambahkan FROM pada semua SQL untuk menghapus record.
Juga pada SQL yang menggunakan INNER JOIN lebih dari table, pada SQL Server kita bisa langsung membuat query tambah separator seperti dibawah ini :
SELECT *
FROM t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a
Pada Ms Access :
SELECT *
FROM (( t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a)
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a)
Jika pada SQL Server cukup : DELETE table_name WHERE..
di Ms Access harus menggunakan FROM : DELETE FROM table_name WHERE.., maka anda harus menambahkan FROM pada semua SQL untuk menghapus record.
Juga pada SQL yang menggunakan INNER JOIN lebih dari table, pada SQL Server kita bisa langsung membuat query tambah separator seperti dibawah ini :
SELECT *
FROM t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a
Pada Ms Access :
SELECT *
FROM (( t_table_a aa
INNER JOIN t_table_b bb ON bb.code_b = aa.code_a)
INNER JOIN t_tabel_c cc ON cc.code_c = aa.code_a)
3. Sinkronisasi.
Pada sinkronisasi, perlu diperhatikan aturan sikronisasi. misal aturannya untuk data master di server tidak boleh dihapus hanya boleh ditambah, maka pada saat sinkronisasi dari lokal ke server hanya bisa menambah tidak boleh menghapus, kemudian baru mengambil data master dari server yang baru. Dan masih banyak lagi, tergantung kebutuhan masing masing.
Kebetulan untuk Ms Access yang saya gunakan adalah Ms Access 2007, maka dibutuhkan driver untuk koneksi database bisa download pada link di bawah ini :
https://www.microsoft.com/en-us/download/details.aspx?id=23734
Office 2007
Tools :
Visual Basic 6.0
SQL Server 2000
Ms Access 2007
Labels: microsoft, SQL SERVER, TIPS, Visual Basic
0 Comments:
Post a Comment
<< Home