Kaskus

Tech

peyotpetotAvatar border
TS
peyotpetot
[delphi, share] client + server database delphi
Kalo resminya, bernama multitier, karena bukan cuma client dan server. Tier atau lapisannya minimal ada tiga:

1. database
2. server
3. client

Untuk database, bisa menggunakan berbagai produk yang ada ... jadi programmer cukup mengurus server dan client.

Nah, sekarang bagaimana membuat server di delphi?

caranya mudah, karena sudah ada wizard-nya ...

Bikin project baru, namakan server (atau nama lain yang enak dibaca).
Lalu klik menu New untuk membuka daftar wizard, dan pilih Remote Data Module. Isi namanya (misalnya rdmServer).

Kemudian isi remote data module tersebut dengan TQuery dan TDataSetProvider.

Isi properti SQL di TQuery dengan query yang diinginkan, misalnya

select * from tabelku.

Sedangkan TDataSetProvider yang nantinya akan melayani arus data dari dan ke server. Satu TDataSetProvider untuk tiap TQuery (fungsinya mirip dengan TDataSource, tapi untuk antar komputer). Set properti DataSet dengan nama TQuery yang digunakan.

Simpan, compile, dan jalankan.
Bagian server sudah jadi ...

ps. untuk win7 saat pertama kali dijalankan, harus menggunakan level administrator, karena program server akan melakukan pendaftaran di registry.

Sekarang bagian client ....

Kalo client, seperti bikin program biasa. Tapi untuk hubungan dengan database jangan menggunakan TQuery, karena sudah dilakukan di program server.

Sebagai gantinya, gunakan TDCOMConnection untuk berhubungan dengan TDataSetProvider yang tadi dipasang pada program server. Ada dua properti yang harus diisi:
- ComputerName adalah nama komputer tempat program server didaftarkan.
- ServerName diisi dengan nama program dan remote data module, misalnya kalo dari contoh Server.rdmServer (atau pilih saja dari daftar).

Setelah sambungan terpasang, maka tambahkan TClientDataSet sebagai "avatar" dari TQuery. Properti yang perlu diisi ada dua juga:
- RemoteServer diisi dengan nama TDCOMConnection
- ProviderName diisi dengan nama TDataSetProvider yang berada di server

Selesai. Program client+server siap digunakan.

Mengapa program ini lebih cepat daripada koneksi langsung lewat TQuery? *disclaimer: lebih cepat untuk dijalankan di jaringan komputer.*

Kalo koneksi langsung dengan TQuery, maka seluruh data yang diminta akan diambil. Jadi select * from tabelku akan mentransfer semua data di tabelku.

Kalo database dan programnya jalan di satu komputer, gak akan terasa, karena kecepatan bus motherboard saat ini > 100 Gbps. Tapi kalo dijalankan lewat LAN (100 Mbps - 1 Gbps) atau internet (umumnya < 1 Mbps), pasti akan amat sangat terasa sekali.

Bandingkan dengan TClientDataSet yang cuma mengambil data yang akan digunakan saja.

Misalnya jika TClientDataSet dihubungkan dengan TDBEdit, karena TDBEdit cuma memakai data pada satu field di satu record, maka data yang diambil oleh TClientDataSet cuma satu field di satu record tersebut. Sedangkan data keseluruhan (select * from tabelku) disimpan oleh TQuery di server.

Misalnya juga, TClientDataSet dihubungkan dengan TDBGrid yang (berdasarkan setting ukuran) diatur untuk menampilkan 10 record, maka cuma 10 record itu yang diambil. Sisanya ngendon di TQuery. Di server.

Jadi lebih hemat bandwidth.

Diubah oleh peyotpetot 18-07-2013 06:11
0
5.1K
7
GuestAvatar border
Komentar yang asik ya
Urutan
Terbaru
Terlama
GuestAvatar border
Komentar yang asik ya
Komunitas Pilihan