Unit khusus (Library) untuk cek koneksi database Client Server

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

8 Comments to Unit khusus (Library) untuk cek koneksi database Client Server

  1. Endra Wijaya says:

    😀 thanks sharenya pak, hehe

  2. Pamungkas says:

    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.. 🙂

  3. ImanD says:

    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

  4. fahrudin says:

    mantep pak imam ilmunya besok mau tak praktekin di tempat kerja

  5. Imam Chalimi says:

    makasih semuanya ..
    kalo ada yg pake database lain, boleh usulkan untuk ditambahkan portnya

  6. Fuad Arrady says:

    Baru sempat komen sekarang,, 😀
    makasih bang,,, sangat berguna nie,,

  7. ImanD says:

    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

  8. Imam Chalimi says:

    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.

Leave a Reply

Your email address will not be published. Required fields are marked *