Senin, 04 November 2013

Akses MySQL menggunakan Lazarus dengan ZEOSDBO



Zeos adalah komponen alternatif pengganti koneksi ADO yang dapat dengan mudah digunakan untuk mengakses database MySQL, PostGre, Interbase/Firebird pada aplikasi Delphi maupun Lazarus.  .  ZeosDBO versi 6.6.6 stable dapat digunakan di Delphi mulai dari Delphi 5 ke atas dan juga Lazarus, sedangkan ZeosDBO versi 7.0.0 alpha hanya untuk Delphi 2009, 2010 dan 2011.



Berikut langkah instalasi ZeosDB secara umum (saat ini saya menggunakan Lazarus 0.9.30)
1. Buka aplikasi MySQL dan Buat database dengan nama 'latihan' dengan perintah :
               create database latihan;
2. Buka database 'latihan' dengan perintah :
                \u latihan

3. Buat table dalam database latihan.
                   create table jurusan(
              kd_jur varchar(5) PRIMARY KEY,
              nm_jur varchar(30)
        );

4. Selanjutnya Ekstrak file ZEOSDBO-6.6.6-stable.zip. di drive 'C:\ZEOSDBO-6.6.6-stable' misalnya.
5. Tambahkan component ZeosDBO pada aplikasi Lazarus dengan cara klik Menu Package - Open Package file (.lpk).


6. Pilih file 'C:\ZEOSDBO-6.6.6-stable\packages\lazarus\zcomponent.lpk' - Open

7. Pada jendela Zcomponent yang terbuka, klik tombol 'install', tunggu sesaat proses install dijalankan. selanjutnya tampil dialog informasi yang menginformasikan bahwa component sudah terpasang di aplikasi Lazarus. Untuk dapat menggunakannya, anda perlu merestart aplikasi Lazarus. klik Yes maka Aplikasi Lazarus yang aktif akan ditutup dan dibuka kembali.


8. Perhatikan di tab pallet Lazarus, ada tab baru yang terbentuk dengan nama 'Zeos Access'


9. Selanjutnya buat Project baru dengan cara klik menu File - New. akan tampil dialog :


pilih 'Aplication' - OK
10. Tambahkan komponen berikut pada form yang tampil :
Object
Properties
Value
TZConnection
( tab Zeos Access )
AutoCommit
Database
HostName
LoginPrompt
Password
Port
Protocol
User
Connected
True
Latihan
Localhost
False
Ichwan
3306
Mysql-5
Root
True
TZTable
( tab Zeos Access )
Connection
TableName
Zconnection1
Jurusan
TdataSource
( tab Data Access )
DataSet
Ztable1
Tlabel
( tab Standard )
Caption
Kode Jurusan
Tlabel
( tab Standard )
Caption
Nama Jurusan
Tedit
( tab Standard )
Name
MaxLength
text
5
Txtkd
TEdit
( tab Standard )
Name
MaxLength
text
30
Txtnm
TBitbtn
( tab Additional )
Caption
Baru
TBitbtn
( tab Additional )
Caption
Simpan
TBitbtn
( tab Additional )
Caption
Hapus
TBitbtn
( tab Additional )
Caption
Keluar
DBGrid
( tab Data Controls)
DataSource
Datasource1
 Atur tampilan formnya seperti berikut :

11. Tampilkan field table dalam component ZTable1 dengan cara double klik pada Ztable1, akan tampil jendela berikut :

 klik tombol 'add field from fieldDefs', selanjutnya akan tampil jendela FieldDefs.

 blok kedua field table dengan cara tekan shift + click - selanjutnya klik tombol Create.
12. Dengan demikian field table jurusan sudah terdaftar didalam blok Type di editor form.

13. Deklarasikan 2 Procedure baru pada blok Private dengan nama :
                    procedure kosong;
        procedure tampil;
14. Lengkapi body procedurenya dengan :
        procedure TForm1.kosong;
        begin
          txtkd.Clear;
          txtnm.Clear;
          txtkd.SetFocus;
        end;

        procedure TForm1.tampil;
        begin
          txtkd.Text:=ZTable1kd_jur.AsString;
          txtnm.Text:=ZTable1nm_jur.AsString;
        end;  

15. Isikan procedure pada onCreate milik form dengan cara Double klik di area form yang kosong, atau dengan cara double klik pada Events OnCreate milik Form.

Lengkapi Perintahnya :
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
       ZTable1.Open;
    end;
 
Perintah diatas akan membuka table pada saat form akan dijalankan.

16. Procedure OnShow milik Form.Untuk mengosongkan kotak isian pada saat form dijalankan.

    procedure TForm1.FormShow(Sender: TObject);
    begin
       kosong;
    end;

17. Procedure OnClick milik Tombol Baru

    procedure TForm1.BitBtn1Click(Sender: TObject);
    begin
       kosong;
    end; 

18. Procedure OnClick milik Tombol Simpan

    procedure TForm1.BitBtn2Click(Sender: TObject);
    begin
      if ZTable1.Locate('kd_jur', txtkd.Text, [loCaseInsensitive]) then
         ZTable1.Edit
      else
        ZTable1.Append;
      ZTable1['kd_jur']:=txtkd.Text;
      ZTable1['nm_jur']:=txtnm.Text;
      Try
        ZTable1.Post;
        kosong;
      except
        ShowMessage('Gagal Simpan');
        Exit;
      end;
    end;   

19. Procedure OnClick milik Tombol Hapus

    procedure TForm1.BitBtn3Click(Sender: TObject);
    begin
      if MessageDlg('Perhatian', 'Apakah anda yakin data ini akan dihapus ?', mtConfirmation, [mbYes, mbNo],0) = mrYes then
         if ZTable1.Locate('kd_jur', txtkd.Text, [loCaseInsensitive]) then begin
            ZTable1.Delete;
            kosong;
         end;
    end;   

20. Procedure OnClick milik Tombol Keluar 

    procedure TForm1.BitBtn5Click(Sender: TObject);
    begin
      close;
    end; 

21. Procedure onDblClick milik DBGrid

    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    begin
      tampil;
    end;


22. Simpan Project dengan cara klik menu File - save all.
Dialog pertama adalah dialog simpan Project, beri nama project dengan Zeos_MySQL - Save


Dialog kedua adalah dialog simpan Unit form, beri nama 'Unit1.pas'




Jalankan aplikasi dengan cara tekan tombol F9 pada Keyboard. Jika tidak ada masalah, akan tampil form berikut :


jika ada pesan berikut :

'Requested database driver was not found', maka sesuaikan isi Protocol milik ZConnection1 dengan database dan versi database yang anda pergunakan.



Source code Aplikasi diatas dapat diambil di http://www.ziddu.com/download/15695554/Lazarus_Zeos_MySQL.rar.html
 
Berikut ini souce code selengkapnya :


unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, db, FileUtil, Forms, Controls, Graphics, Dialogs, DbCtrls,
  DBGrids, StdCtrls, Buttons, ZConnection, ZDataset;

type

  { TForm1 }

  TForm1 = class(TForm)
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn5: TBitBtn;
    Datasource1: TDatasource;
    DBGrid1: TDBGrid;
    txtkd: TEdit;
    txtnm: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    ZConnection1: TZConnection;
    ZTable1: TZTable;
    ZTable1kd_jur: TStringField;
    ZTable1nm_jur: TStringField;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure DBGrid1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    procedure kosong;
    procedure tampil;
  public
    { public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  kosong;
end;

procedure TForm1.BitBtn2Click(Sender: TObject);
begin
  if ZTable1.Locate('kd_jur', txtkd.Text, [loCaseInsensitive]) then
     ZTable1.Edit
  else
    ZTable1.Append;
  ZTable1['kd_jur']:=txtkd.Text;
  ZTable1['nm_jur']:=txtnm.Text;
  Try
    ZTable1.Post;
    kosong;
  except
    ShowMessage('Gagal Simpan');
    Exit;
  end;
end;

procedure TForm1.BitBtn3Click(Sender: TObject);
begin
  if MessageDlg('Perhatian', 'Apakah anda yakin data ini akan dihapus ?', mtConfirmation, [mbYes, mbNo],0) = mrYes then
     if ZTable1.Locate('kd_jur', txtkd.Text, [loCaseInsensitive]) then begin
        ZTable1.Delete;
        kosong;
     end;
end;

procedure TForm1.BitBtn5Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
  tampil;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  ZTable1.Open;
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  kosong;
end;

procedure TForm1.kosong;
begin
  txtkd.Clear;
  txtnm.Clear;
  txtkd.SetFocus;
end;

procedure TForm1.tampil;
begin
  txtkd.Text:=ZTable1kd_jur.AsString;
  txtnm.Text:=ZTable1nm_jur.AsString;
end;

end.

 

Selamat Mencoba

Tidak ada komentar: