Untuk tutorial kali ini kita akan mencoba membuat program CRUD dengan menggunakan store
procedure. Stored Procedure adalah sebuah kelompok kode SQL yang di simpan di katalog database
dan dapat di panggil kemudian oleh program, trigger atau bahkan stored procedure. Sebuah Stored
Procedure yang memanggil diri nya sendiri di sebut rekursif stored procedure. Dalam pembuatan aplikasi
jika menggunakan store procedure tentunya dapat membuat aplikasi kita berbeda jika dibandingkan
dengan tanpa store procedure, berikut beberapa keuntungan penggunaan store procedure :
a. Meningkatkan performance aplikasi.
Sebuah Stored Procedure di simpan dan di compile di katalog database yang mana dapat di
eksekusi lebih cepat di bandingkan SQL yang tidak di compile dari kode aplikasi.
b. Mengurangi traffic antara aplikasi dan database server.
Aplikasi hanya mengirim nama stored procedure untuk mengeksekusi SQL.
c. Dapat di gunakan kembali dan transparent ke aplikasi yang ingin menggunakan nya.
3. Buat store procedure untuk proses simpan melalui Programmability Store Procedure Klik
Kanan New Store Procedure
Setelah klik new store procedure pertama akan muncul template dari store procedure,
templatenya dihapus semua saja bagi yang belum paham cara penggunaannya lalu masukkan
store procedure seperti berikut
Page 1
Keterangan :
@nim sampai @alamat merupakan variabel yang akan digunakan sebagai parameter, bisa
diartikan itu sebagai edit saat di delphi (dalam pembuatan variabel sesuaikan dengan kebutuhan
di perintah query setelah perintah as (untuk kasus diatas query untuk simpan) dan saat
penggunaannya di Delphi sesuaikan urutannya.
Setelah selesai membuat store procedure simpan dengan cara klik Execute
Jika sudah tidak ada yang error cara melihat apakah store procedure sudah masuk ke database
tersebut dengan cara Refresh pada menu Store Procedure
Page 2
Jika semua sudah dibuat dan disimpan maka akan ada 3 Store Procedure
Page 3
4. Selanjutnya kita implementasikan Store Procedure yang sudah dibuat ke Delphi, rancanglah form
seperti berikut (atau sesuai kreasi masing-masing) :
AdoQuery1
AdoQuery2
DataSource1
DBGrid1
Properties
Name
Login Prompt
Connected
Name
Connection
Name
Connection
Name
DataSet
DataSource
Setting
koneksi
False
True
Qmhs
koneksi
Qumum
koneksi
DSmhs
Qmhs
DSmhs
Page 4
5. Sintak Program
Event Onshow :
procedure TForm1.FormShow(Sender: TObject);
begin
Button1.Enabled:=true;
Button2.Enabled:=false;
Button3.Enabled:=false;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
RadioButton1.Checked:=false;
RadioButton2.Checked:=false;
DateTimePicker1.Date:=now;
Memo1.Clear;
with Qmhs do
begin
close;
sql.Clear;
sql.Add('select * from tb_mhs');
open;
end;
end;
Tombol Simpan :
procedure TForm1. Button1Click(Sender: TObject);
var jns_kelamin:string;
begin
if (Edit1.Text='') or (Edit2.Text='') or
((RadioButton1.Checked=false) and (RadioButton2.Checked=false))
or (Edit3.Text='') or (Memo1.Text='')then
ShowMessage('Data Kurang Lengkap, Silahkan Dilengkapi!') else
begin
with Qmhs do
begin
sql.Clear;
SQL.Add('select * from tb_mhs where nim='+quotedstr(Edit1.text)+'');
open;
end;
if Qmhs.Recordset.RecordCount > 0 then
ShowMessage('Data sudah ada silahkan isi yang lain!!')
else
begin
if RadioButton1.Checked=true then
jns_kelamin:='Laki-Laki' else
if RadioButton2.Checked=true then
jns_kelamin:='Perempuan';
ADOCommand1.Connection:=koneksi;
try koneksi.BeginTrans;
with ADOCommand1 do
Author : Khoirudin, S.Kom
Page 5
Page 6
begin
ADOCommand1.Connection:=koneksi;
try koneksi.BeginTrans;
with ADOCommand1 do
ADOCommand1.CommandText:='hapus '+QuotedStr(Edit1.Text);
ADOCommand1.Execute;
Koneksi.CommitTrans;
except Koneksi.RollbackTrans
end;
FormShow(sender);
end;
end;
Event OnCellClick pada DBgrid :
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var jns_kelamin:string;
begin
Button1.Enabled:=false;
Button2.Enabled:=true;
Button3.Enabled:=true;
with Qmhs do
begin
Edit1.Text:=FieldValues['nim'];
Edit2.Text:=FieldValues['nama'];
jns_kelamin:=FieldValues['jns_kel'];
if jns_kelamin='Laki-Laki' then
RadioButton1.Checked:=true else
RadioButton2.Checked:=true;
Edit3.Text:=FieldValues['tempat_lahir'];
DateTimePicker1.Date:=FieldValues['tgl_lahir'];
Memo1.Text:=FieldValues['alamat'];
end;
end;
Tombol Refresh :
procedure TForm1.Button4Click(Sender: TObject);
begin
FormShow(sender);
end;
Tombol Keluar :
procedure TForm1.Button5Click(Sender: TObject);
begin
close;
end;
6. Jalankan program dan tes apakah masih ada yang error,jika masih ada silahkan tanyakan.
Author : Khoirudin, S.Kom
Page 7
7. Untuk penggunaan Store Procedure yang lain silahkan kalian kembangkan sendiri, misalnya
untuk insert ke 2 tabel.
Page 8