Menjalankan banyak Statemen QUERY dengan satu perintah connect

Berbagai macam bahasa pemrograman baik Visual Basic, C++, PHP atau Visual Foxpro membutuhkan koneksi untuk melakukan pengolahan CRUD (Create, Read, Update dan DELETE) terhadap berbagai database seperti MySQL, Oracle atau pun database yang lain.

Setiap satu perintah Query membutuhkan satu kali koneksi agar dapat dijalankan oleh mesin database (database engine). nah, untuk menghemat koneksi atau mempercepat proses tersebut, dan agar banyak perintah (query-multi-statements / QMS) dapat dijalankan dalam satu kali koneksi ke database dibutuhkan sebuah PROCEDURE yang dapat menjalankan banyak perintah dalam satu waktu (satu kali koneksi atau pemanggilan koneksi). Proses akan menjadi lebih cepat karena langsung dijalankan di engine nya.

Kode dibawah ini merupakan sebuah procedure yang saya buat pada database MySQL untuk menjalankan banyak perintah yaitu:

 

delimiter //
CREATE PROCEDURE invoice_buat (IN asql1 TEXT,IN asql2 TEXT,
IN cidlogon VARCHAR(36))
BEGIN
  SET @a=asql1;
  PREPARE bsql FROM @a;
  EXECUTE bsql;
 
  SET @b=asql2;
  PREPARE bsql FROM @b;
  EXECUTE bsql;
 
  INSERT INTO loguser_detail
  (idlogon,aud,catatan)
  values (cidlogon,"1",asql1);
 
  DELETE FROM jual_temp WHERE idlogon=cidlogon;
END//

perintah tersebut diatas dapat dipanggil sebagai berikut:

call invoice_buat('insert into order (noorder,idlogon) values ("123","admin")',
'insert into order_list(noorder,kdbrg,unit,harga) select "123",kdbrg,unit,harga from jual_temp where idlogon="admin"',
"admin");

dari perintah diatas parameter asql1 digunakan untuk membuat nomor order yang baru, sedangkan parameter asql2 digunakan untuk mengisi tabel order_list, perintah delete pada prosedur berfungsi untuk menghapus file temporer berdasarkan idlogon.

Sedangkan perintah INSERT INTO loguser_detail digunakan untuk menyimpan audit trail atas semua perintah-perintah yang telah diberikan ke dalam tabel.

Jadi prosedur diatas sekali panggil / konek dapat melakukan 4 perintah sekaligus. Mudah2an dengan teknik ini bisa mempercepat lagi proses pengolahan data yang dilakukan oleh program.

Selamat mencoba.

ayojoin

* Dipersembahkan buat http://fox-id.org khususnya tn. Foxy dan RND.

:2thumbup

Tambahan:

untuk odbc driver versi 5.3 ke atas agar dapat menjalankan banyak query dalam satu connect maka pada perintah connect ke databasenya ditambahkan menjadi sebagai berikut: (Microsoft Visual FoxPro)

 

lcl_cstr="DATABASE=mydata;SERVER=localhost;port=3306;UID=root; pwd=admin;"+;
"option=67108864;DRIVER={MySQL ODBC 5.3 ANSI Driver};"

Leave a Reply

Your email address will not be published. Required fields are marked *

[+] kaskus emoticons nartzco

What is 6 + 4 ?
Please leave these two fields as-is: