Pada Aplikasi yang menggunakan database berbasis Client Server, banyak hal yang menyebabkan gagalnya koneksi, antara lain server mati dan gangguan jaringan.
Biasanya untuk mengantisipasi hal tersebut kita menggunakan jurus try .. except .. end seperti contoh dibawah ini :
try IBDatabase1.Open; except ShowMessage('Koneksi gagal'); end;
tetapi salah satu kekurangan cara tersebut adalah menampilkan pesan kesalahan terlalu lama, bahkan hingga aplikasi client menjadi not responding.
hal ini tidak baik mengingat kecepatan merupakan salah satu hal terpenting dalam koneksi client server.
Menyikapi hal tersebut diatas, semoga library kecil yang kami buat ini dapat membantu menjadi sebuah solusi yang dapat melakukan pemeriksaan kesiapan server dengan lebih cepat sebelum kita benar-benar melakukan koneksi ke database.
Library ini lumayan kecil (cuman sekitar 19KB) dan mendukung untuk pemeriksaan server Interbase, Firebird, MySQL, PostgreSQL, SQLServer dan Oracle.
Library beserta unit deklarasinya dapat di download secara gratis di ..
https://app.box.com/s/hy0g5mhghpry6z6ljnbs
Isi unit cek_remote_unit ..
unit cek_remote_unit; (* Cek Remote Utilities Unit untuk mengecek database Client Server mendukung Interbase, Firebird, MySQL, PostgreSQL, SQLServer, Oracle ditulis oleh : Imam Chalimi Muslim, Maret 2013 http://www.facebook.com/imam.chalimi http://www.facebook.com/groups/delphi.interbase catatan: Unit ini membutuhkan file cek_remote.dll copykan file cek_remote.dll satu folder dengan aplikasinya atau copykan ke c:\windows\system32 Revisi terakhir 7 Maret 2013 Â *) interface uses Windows; type TServerPort = (spInterbase, spMySQL, spPostgreSQL, spSQLServer, spIB3051, spIB3052, spIB3053, spOracle); function CekRemoteServer(IPAdress:string='127.0.0.1';ServerPort:TServerPort=spInterbase):Boolean; stdcall; external 'cek_remote.dll'; function CekRemoteInterbase(IPAdress:string='127.0.0.1'):Boolean; stdcall; external 'cek_remote.dll'; function CekRemoteMySQL(IPAdress:string='127.0.0.1'):Boolean; stdcall; external 'cek_remote.dll'; function CekRemotePostgreSQL(IPAdress:string='127.0.0.1'):Boolean; stdcall; external 'cek_remote.dll'; function CekRemoteSQLServer(IPAdress:string='127.0.0.1'):Boolean; stdcall; external 'cek_remote.dll'; function CekRemoteOracle(IPAdress:string='127.0.0.1'):Boolean; stdcall; external 'cek_remote.dll'; implementation end.
Contoh penggunaan …
procedure TForm1.Button1Click(Sender: TObject); begin if not CekRemoteInterbase('192.168.0.1') then begin ShowMessage('Koneksi gagal'); Exit; end; try IBDatabase1.Open; except ShowMessage('Database tidak dapat dibuka'); end; end;
fungsi-fungsi yang tersedia ..
CekRemoteServer … contoh CekRemoteServer(‘192.168.0.1’,spInterbase);
CekRemoteInterbase … contoh CekRemoteInterbase(‘192.168.0.1’);
CekRemoteMySQL … contoh CekRemoteSQLServer(‘192.168.0.1’);
CekRemotePostgreSQL … contoh CekRemoteSQLServer(‘192.168.0.1’);
CekRemoteSQLServer … contoh CekRemoteSQLServer(‘192.168.0.1’);
CekRemoteOracle … contoh CekRemoteOracle(‘192.168.0.1’);
selain itu juga dapat digunakan untuk memeriksa port interbase non standard 3051-3053.
Semoga bermanfaat
😀 thanks sharenya pak, hehe
top om Imam… cuman belom dapat diimplementasikan ditempat saia… seperti pertanyaan saya di KPPDI… 🙂
mudah-mudahan segera di open.. syukur-syukur boleh intip tuh dalemannya.. 🙂
woow tengyu mas Imam, alhamdulillah sangat terbantu…
ada pertanyaan sedikit…
klo misalkan saya pke thread u/ checking-nya u/ kebutuhan indikator connect/not connect atw buat pemantau connection, ada efek samping ga?(xixiix kayak obat az)
//ImanD
mantep pak imam ilmunya besok mau tak praktekin di tempat kerja
makasih semuanya ..
kalo ada yg pake database lain, boleh usulkan untuk ditambahkan portnya
Baru sempat komen sekarang,, 😀
makasih bang,,, sangat berguna nie,,
mas imam, terima kasih sebelumnya…
saya sudah terapkan dll di beberapa tempat namun ada 1 tempat dimana di install di 3 komputer hasilnya sama tidak konek(tiap pc diinstall masing-masing sql server dan test konek local). tapi saat saya coba connect ke db nya langsung, hasilnya konek.
kira-kira apanya ya mas imam.
terima kasih sebelumnya…
// ImanD
mas ImanD ..
maksudnya ditest pake tool ini dinyatakan tidak konek padahal konek langsung ke database konek.
cara kerja dari tool ini adalah sbb ..
– melakukan ping ke ip ybs
– melakukan test koneksi ke port ybs
kasus mas diatas kemungkinan terjadi karena fitur ping pada komputer server tersebut dimatikan.