Senin, 02 Maret 2009

(C)2009 fajardelphiscript
for Begginer
Tutorial membuat database sederhana dengan ADO
operasi dasar Add,Edit,Update,Delete.
tujuan:

1.anda akan diberikan contoh bagaimana mengatur path database secara dinamis.
2.Tekhnik efisiensi operasi Add dan Edit menggunakan Form yang sama.
3.mengetahui pengimplementasian operasi dasar Add,Edit,Update,delete.
Buka Delphi anda masing-masing buat lah design form seperti berikut:


2.Buatlah sebuah Data Modul (File -->New-->Data Module)


Letakan komponen AdoConnection(palette ADO),ADOTable(Palette ADO),dan DataSource(Palette Data Acsses) .untk kemudahan saat melakukan coding ubah masing-masing properties nama nya menjadi seperti berikut.ubahlah properties provider pada ADOConnection menjadi Microsoft.Jet.OLEDB.4.0.





klik datasource dan ubah properties Dataset nya menjadi ADOTable,klik table ubah properties connection nya menjadi con.kira kira berikut adalah hubungan dari ketiga komponen tersebut

User Interface(DataControl(DBGrid,DBNavigator dll))-->DataSource-->ADOTable-->ADOConnection-->Database

pada event DatModuleCreate dan DataModuleDestroy ketikan code berikut:


procedure Tdm.DataModuleCreate(Sender: TObject);


begin

//Connection string dengan path database dinamis


con.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+form1.path+'latihan.mdb'+';Persist Security Info=False';


con.Connected:=true;//mengkoneksikan ke database


table.TableName:='contoh';//menentukan nama table


table.Open;//membuka table


end;

procedure Tdm.DataModuleDestroy(Sender: TObject);


begin

table.Close;//menutup table


con.Connected:=false;//memutus koneksi


end;


MENDEFINISIKAN PATH DATABASE SECARA RUNTIME

Kembali ke Unit1 atau Form1 uses unit datamodul ke form1 atau dengan cara ALT+F11,ubahlah properties DataSource dari dbGrid dan DBNavigtor menjadi dm.ds(datasource) .buatlah sebuah variable global bertipe string pada clause Public.


public
path:string;
end;



procedure pada even onCreateForm

procedure TForm1.FormCreate(Sender: TObject);
begin
{definisikan path utama program}
path:=extractfilepath(application.ExeName);
end;

Double Click button1 ketikan code berikut:

procedure TForm1.Button1Click(Sender: TObject);

begin

{mengcreate Form2 dan mengatur Form untuk penambahan data kemudian showmodal}

Form2:=TForm2.Create(nil);

try

with Form2 do

begin

AddorEdit:=true;//variable global dari form2 untuk menentukan procedure button1click add/edit

caption:='Tambah Siswa baru';

showmodal;

end;

except form2.Free;end;

end;

pada event onClick button2 ketikan code berikut:
procedure TForm1.Button2Click(Sender: TObject);

begin

{mengcreate Form2 dan mengatur Form untuk Pengeditan data kemudian showmodal}

Form2:=TForm2.Create(nil);

try

with Form2 do

begin

AddorEdit:=false;//variable global dari form2 untuk menentukan procedure button1click add/edit

caption:='Edit Data Siswa';

edit1.Text:=dm.table.Fields[0 ].AsString;

edit2.Text:=dm.table.Fields[1 ].AsString;

memo1.Text:=dm.table.Fields[2 ].AsString;

edit3.Text:=dm.table.Fields[3 ].AsString;

showmodal;

end;

except form2.Free;end;

end;

pada event onClick button3 ketikan code berikut:

procedure TForm1.Button3Click(Sender: TObject);
begin
if messagedlg('apakah anda yakin akan menghapus'+dm.table.Fields[1].AsString +'?',mtConfirmation,[mbYES,mbNO], 0)=mrYes then dm.table.Delete else exit;
end;

Buatlah Form Baru dan designlah kira-kira seperti berikut:



agar Unit/Form ini dapat dipakai untuk operasi Add dan Edit maka diperlukan 1 Procedure dan 1 variable global yag menentukan

pada button1 di form2 apakah melakukan operasi add atau edit.untuk mempercepat(udah cape nih,hihi),berikut adalah listing dari unit2:

unit AddEdit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Edit3: TEdit;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Procedure clear;
public
AddorEdit:Boolean;
Procedure Add(AddEdit:boolean);
end;
var
Form2: TForm2;
implementation
uses datamodul;
{$R *.dfm}
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
Form2:=nil;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
Close;
end;

procedure TForm2.clear;
begin
edit1.Clear;
edit2.Clear;
memo1.Clear;
edit3.Clear;
edit1.SetFocus;
end;

Procedure TForm2.Add(AddEdit:boolean);
begin
if AddEdit=true then
begin
with dm.table do
begin
try
Insert;//perintah insert database
fields[0].AsString:=edit1.text;
fields[1].AsString:=edit2.text;
fields[2].AsString:=memo1.text;
fields[3].AsString:=edit3.text;
post;//Post
messagedlg('penambahan data berhasil!',mtInformation,[mbOK],0);
clear;
except
messagedlg('penambahan data gagal!,mohon periksa kembali',mtError,[mbOK],0);
edit1.SetFocus;
end;
end;
end else
begin
with dm.table do
begin
try
Edit;
fields[0].AsString:=edit1.text;
fields[1].AsString:=edit2.text;
fields[2].AsString:=memo1.text;
fields[3].AsString:=edit3.text;
update;;
messagedlg('Pengeditan data berhasil!',mtInformation,[mbOK],0);
clear;
except
messagedlg('Pengeditan data gagal!,mohon periksa kembali',mtError,[mbOK],0);
edit1.SetFocus;
end;
end;
end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
if AddorEdit=True then add(true) else add(false);
end;
end.

Tekan F9/RUN,jika anda mengikut langkah perlangkah dengan baik maka program akan berjalan dengan baik.

Harap perhatikan dan pelajari baik-baik Source code,jika anda kurang paham silahkan download source code nya: SourceCode

4 comments:

  1. zorokom@peoplestring.com

    BalasHapus
  2. sangat membantu. ,
    rusdicr.wordpress.com

    BalasHapus
  3. numpang tanya,, gimana cari link dbgrid di form 1 ke form 2 ya ??
    mohon bantuannya,, thanks

    BalasHapus

Katakan Sesuatu