Kali ini saya akan menulis tentang penggunaan sederhana storedprocedure dalam database MySQL untuk memfilter data diantara dua tanggal yang biasanya digunakan untuk menampilkan laporan pada periode tertentu, pada contoh ini saya hanya bermain menggunakan satu tabel saja kalau mau dikembangkan dengan join tabel sialhkan yang penting tahu konsepnya dan caranya sama saja, silahkan dikembangkan dan disesuaikan dengan kebutuhan kita, yang jelas eksekusi yang di lakukan di database akan meningkatkan kinerja aplikasi kita karena hanya akan mengambil hasil query tidak melakukan query pada sisi aplikasi, dan kita akan coba prktekan mengeksekusi prosedur dari phpmyadmin dan dari delphi.
Yup langsung saja, saya mempunyai tabel bernama tabel jual dengan struktrur sebagai berikut…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| -- -- Table structure for table `jual` -- CREATE TABLE IF NOT EXISTS `jual` ( `nofaktur` varchar (18) NOT NULL , `tanggal` date NOT NULL , `tempo` date NOT NULL , `kdgudang` varchar (15) NOT NULL , `kdpel` varchar (15) NOT NULL , `total` double NOT NULL , `disc` double NOT NULL , `bayar` double NOT NULL , `kurang` double NOT NULL , PRIMARY KEY (`nofaktur`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `jual` -- |
Kemudian saya membuat prosedur menggunakan phpmyadmin, melalui menu tampak seperti pada gambar berikut ini melalui menu Routines > Add New Routine
Kemudian akan tampil menu seperti tampak pada gambar dibawah, kita beri nama prosedur (penting di ingat soalnyananti untuk memanggil nama prosedur dari aplikasi) lalu pilih tipe Procedure (bukan Function), kemudian kita buat 2 parameter IN dengan tipe DATE guna memfilter tabel yang kita buat, kemudian isikan definitionnya seperti kode dibawah ini…
1
2
3
4
| BEGIN SELECT * FROM jual WHERE tanggal between TGL1 And TGL2; END |
Penjelasan :
- Nama procedure/function yang kita buat, sangat penting soalnya nanti kalau kita akan memakai kita ketikan namanya.
- Type, memilih apakah kita akan membuat procedure/function.
- Parameter input (masukan) kedalam function yang kita buat, kita bisa menmabah berapapun sesuai yang kita butuhkan.
- Parameter output (kembalian) setelah fungsi dieksekusi.
- Isi koding procedure/function yang kita buat.
- Definer seperti yang ada pada trigger yaitu akses user pengguna function nantinya. *catatan : agar fungsi/prosedur bisa dikases semua user di semua host (IP) kosongkan saja.
Setelah selesai tekan tombol GO, jika tidak ada error maka routine akan terbentuk, kita bisa mencobanya dengan melakukan execute sesuai nama prosedur yang telah kita buat..
Kemudian isikan rentang tanggal yang di inginkan maka tabel akan terfilter sesuai parameter tersebut, kemudian dari sisi aplikasi pada contoh ini saya menggunkan Delphi XE2 dengan komponen tambahan MyDAC, kemudian buat koneksi serta gunakan komponen TMyStoredProc, lalau kita pilih nama prosedurnya dari dalam komponen seperti pada gambar.
Kemudian pada tombol kita berikan koding ini untuk memanggil prosedur yang telah dibuat.
1
2
3
4
5
| sp . SQL . Clear; sp . SQL . Add( 'CALL FILTER_JUAL(:P1,:P2)' ); sp . Params[ 0 ].AsDate:=DateTimePicker1 . Date; sp . Params[ 1 ].AsDate:=DateTimePicker2 . Date; sp . ExecProc; |
SP adalah name dari komponen TMyStoredProc, jika dilakukan dengan langkah yang benar, maka kita bisa mendapatkan hasil prosedur yang kita buat tampil pada program sesuai dengan tanggal yang kita pilih
Demikian tutor dasar yang bisa saya sampaikan kali ini silahkan tinggalkan pesan pertanyaan komentar dan kritik anda, semoga bisa menjadi manfaat dan ilmu jariyah. aamiin ya rabb..
sumber:https://mboloz.wordpress.com/2014/05/31/mysql-filtering-antara-dua-tanggal-dengan-stored-procedure/
No comments:
Post a Comment