Daily Archiv: Wednesday - 06 March 2013

Tips Optimasi agar loading IDE delphi lebih cepat, ringan dan nyaman dipakai

Salah satu yang membuat kita “kerasan” menggunakan delphi karena didukung beragam paket VCL (komponen) bawaan maupun tambahan yang dibuat oleh pihak ketiga.

Saat ini ada ratusan bahkan ribuan komponen bagus yang dibuat untuk delphi baik yang gratis maupun berbayar.

Semakin hari semakin banyak saja komponen bagus yang membuat kita “ngiler” untuk memasang di delphi kita.

Dengan semakin banyak komponen yang kita pasang konsekuensinya lambat laun akan membuat loading delphi menjadi berat karena membutuhkan lebih banyak resource.

Untuk meringgankan beban delphi, salah satu jalan yang kita tempuh adalah dengan mengurangi sebagian paket komponen, diinstall sebagian aja yang saat ini dibutuhkan.

Namun cara ini agak merepotkan bila mana kita sedang mengerjakan banyak proyek yang menggunakan macam2 komponen berbeda.

Saat mengerjakan proyek A, install paket A,B,C.
Saat mengerjakan proyek B, install paket A,B,E,F.
Saat mengerjakan proyek C, install pake layout model lama.

Ada solusi untuk masalah diatas yaitu memanggil IDE delphi dengan menggunakan konfigurasi yang berbeda (kita bisa membuat 2 atau lebih shortcut untuk ini).

Caranya kita copy shortcut yang ada menjadi beberapa sesuai kebutuhan lalu kita edit parameternya.

misalnya ..
Shortcut asli pada Delphi XE

“C:\Program Files\Embarcadero\RAD Studio\8.0\bin\bds.exe” -pDelphi

kita buat beberapa shortcut misalnya ..

“C:\Program Files\Embarcadero\RAD Studio\8.0\bin\bds.exe” -pDelphi -rPaketA
“C:\Program Files\Embarcadero\RAD Studio\8.0\bin\bds.exe” -pDelphi -rPaketB
“C:\Program Files\Embarcadero\RAD Studio\8.0\bin\bds.exe” -pDelphi -rPaketC

selanjutnya kita panggil masing2 shortcut dan lakukan kustomisasi, misalnya paket apa aja yg diinstall, layoutnya gimana dan setting lainnya.

Dengan membuat berberapa konfigurasi seperti diatas maka loading IDE delphi akan lebih cepat dan ringan karena tidak semua paket dimuat ke memory dan kita tidak perlu bolak/balik bongkar pasang paket.

Semoga bermanfaat

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