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]ASBEGIN SELECT id, nama FROM mst_groupBarangEND |
untuk memanggil nya, kita bisa mengeksekusi perintah berikut di Query Editr MSSQL Server
DECLARE @return_value intEXEC @return_value = [dbo].[sp_groupBarang_select]SELECT 'Return Value' = @return_valueGO |
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