Pada artikel kali ini kita coba untuk memanggil stored procedure MSSQL Server menggunakan Zend_db milik nya Zend Framework.
Pada Project POS yang akan kita buat pada pembahasan-pembahasan sebelumnya, sedikit banyak pasti tangan kita gatal untuk menggunakan Store procedure untuk beberapa alasan, apalagi dengan banyaknya feature MSSQL Server, diantaranya melakukan Sub-Query yang belum dimiliki oleh MySQL.
Langkah Pertama, Pada project POS yang sudah di Download, pada file config.ini terdapat script sebagai ppengaturan koneksi antara aplikasi ke database, seperti berikut :
resources.db.adapter = "pdo_mssql" resources.db.params.host = "nama-mesin" resources.db.params.username = "nama-user" resources.db.params.password = "password-user-database" resources.db.params.dbname = "nama-database" resources.db.isDefaultTableAdapter = true |
Selanjutnya, kita buat 1 tabel
CREATE TABLE [dbo].[mst_groupBarang]( [id] [int] IDENTITY(1,1) NOT NULL, [nama] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, CONSTRAINT [PK_mst_groupBarang] PRIMARY KEY CLUSTERED ( [id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] |
Kita isikan beberapa data :
INSERT INTO mst_groupBarang (nama) VALUES ( 'ATK' ); INSERT INTO mst_groupBarang (nama) VALUES ( 'BUKU' ); INSERT INTO mst_groupBarang (nama) VALUES ( 'SOFTWARE' ); INSERT INTO mst_groupBarang (nama) VALUES ( 'HARDWARE' ); INSERT INTO mst_groupBarang (nama) VALUES ( 'KOMPUTER' ); |
Untuk memastikan, kita bisa coba dengan melakukan perintah select :
SELECT * FROM mst_groupBarang |
jika berhasil akan menampilkan hasil sebagai berikut
ID | NAMA |
1 | ATK |
2 | BUKU |
3 | SOFTWARE KOMPUTER |
4 | HARDWARE KOMPUTER |
4 | RUMAH TANGGA |
Sementara, di File Boostrap.php yang berada di Folder Application pada project Zend yang kita buat, kita daftarkan ke registry Zend.
protected function _initRegistry(){ $this ->bootstrap( 'db' ); // mendapatkan nilai dari file config.ini dengan nama resources db $db = $this ->getResource( 'db' ); $db ->setFetchMode(Zend_Db::FETCH_OBJ); // mendaftarkan db sebagai parameter koneksi Zend_Registry::set( 'db' , $db ); } |
Setelah itu, kita buat 1 stored_procedure
CREATE PROCEDURE [dbo].[sp_groupBarang_select] AS BEGIN SELECT id, nama FROM mst_groupBarang END |
untuk memanggil nya, kita bisa mengeksekusi perintah berikut di Query Editr MSSQL Server
DECLARE @return_value int EXEC @return_value = [dbo].[sp_groupBarang_select] SELECT 'Return Value' = @return_value GO |
Sekarang, bagaimana cara memanggil store procedurenya menggunakan Zend Framework ???
pada IndexController di action IndexAction, tambahkan script berikut :
$db = Zend_Registry::get( 'db' ); //var_dump($db); try { if ( $db ->getConnection()){ $sql = "Exec dbo.sp_groupBarang_select" ; $results = $db ->query( $sql ); $rowset = $results ->fetchAll(); foreach ( $rowset as $a ){ echo $a ->nama; } } } catch (Zend_Db_Adapter_Exception $e ) { echo $e ->getmessage(); echo "LOGIN GAGAL, KAYANYA RDBMS GAK JALAN" ; } catch (Zend_Exception $e ){ echo "METHOD FACTORY() GAGAL MENJALANKAN CLASS ADAPTER YANG DITUJU" ; } |
Tidak ada komentar:
Posting Komentar