Ismail Hamzah

"in harmonia progressio"
See also: Other Geeks@INDC

April 2008 - Posts

Calling Sybase Stored Procedure From DAL

Memanggil stored procedure MS SQL dari DAL merupakan hal yang biasa dan banyak sekali dijumpai contoh-contohnya. Namun memanggil stored procedure Sybase cukup agak tricky, setidaknya untuk saya pribadi. Pada awalnya saya berfikir memanggil Stored Procedure pasti polanya sama aja untuk database manapun tapi ternyata tidak. Untuk lebih meresapi apa yang telah saya tulis diatas mari disimak potongan source code di bawah ini:

public void ADD(GAC_OFFICES_BO obj)

{

DbCommand cmd = DB.GetStoredProcCommand("{call SP_GAC_OFFICES_ADD(?, ?, ?, ?, ?, ?, ?, ?)}");

DB.AddInParameter(cmd, "OFFICE_CODE", DbType.String, obj.OFFICE_CODE);

DB.AddInParameter(cmd, "OFFICE_NAME", DbType.String, obj.OFFICE_NAME);

DB.AddInParameter(cmd, "MODE", DbType.String, obj.MODE);

DB.AddInParameter(cmd, "ACTIVE_FLAG", DbType.String, obj.ACTIVE_FLAG);

DB.AddInParameter(cmd, "CREATED_BY", DbType.String, obj.CREATED_BY);

DB.AddInParameter(cmd, "CREATED_DATE", DbType.DateTime, obj.CREATED_DATE);

DB.AddInParameter(cmd, "UPDATED_BY", DbType.String, obj.UPDATED_BY);

DB.AddInParameter(cmd, "UPDATED_DATE", DbType.DateTime, obj.UPDATED_DATE);

DB.ExecuteNonQuery(cmd);

}

Diatas adalah sebuah method yang berguna untuk menambahkan data ke database. Method tersebut memanggil sebuah stored procedure yang bernama SP_GAC_OFFICES_ADD dengan inputan parameter sebanyak delapan buah. Dapat dilihat, Stored Procedure dipanggil dengan cara menggunakan kurung kurawal, kata "call", nama Stored Procedure dan kemudian simbol tanda tanya. Banyak simbol tanda tanya yang digunakan adalah sejumlah parameter dari stored procedure yang bersangkutan.

Cara menambahkan parameter hanya memiliki sedikit perbedaan yaitu tidak digunakannya simbol "a keong (@)" didepan nama parameter.

buat saya, perbedaan ini telah membuat saya sedikit "headache" ketika membuat POC dan sebagai kenang-kenangan maka saya tuliskan di blog ini :-)

note:

Objek DB adalah objek dari kelas

Microsoft.Practices.EnterpriseLibrary.Data.Database 

Share this post: | | | |
Posted: Apr 30 2008, 09:23 AM by go2ismail | with 1 comment(s) |
Filed under:
IGW816: Exceptional Experience

like the title said, "IGW816: Exceptional Experience"

different people from different country working together for one goal :-)

Stewart Herbert

Eva Navratil Freitag

Ilias Avramidis

Kanagarajan

Ashan B. Silva

thank you for everything

good bye "Spicy Spirit of 6" smile.... :-)

Share this post: | | | |
Posted: Apr 23 2008, 05:39 PM by go2ismail | with no comments
Filed under:
Custom RoleProvider

Meneruskan artikel sebelumnya tentang custom membership provider, maka kali ini saya akan coba tuliskan sekilas tentang custom role provider. Implementasi dari custom role provider kurang lebih sama dengan implementasi custom membership provider yaitu melalui tiga langkah mudah yaitu: membuat kelas turunan, meng-override method dan terakhir adalah konfigurasi web.config.

1. Membuat kelas turunan

untuk custom role provider ini, kelas yang akan dibuat diturunkan dari kelas RoleProvider.

namespace Provider

{

public class SybaseRoleProvider : RoleProvider

{

}

}

note: penamaan kelas turunan adalah bebas, saya menggunakan "Sybase" karena client menginginkan saya meng-custom role and membership dengan menggunakan Sybase sebagai beck-end. Awalan "Sybase" akan mengingatkan bahwa beck-end yang hendak digunakan adalah Sybase.

2. Meng-override method GetRolesForUser

Method GetRolesForUser akan mengambil roles dari seorang user dengan menggunakan informasi username yang diinputkan. Isi dari method ini adalah akses ke database yang akan mengembalikan nama-nama roles yang dimiliki oleh seorang user berdasarkan username nya.

public override string[] GetRolesForUser(string username)

{

 

 

}

keluaran dari method GetRolesForUser adalah array string yaitu nama-nama roles yang dimilki oleh user tertentu.

3. Konfigurasi web.config

langkah terakhir adalah konfigurasi web.config

<roleManager enabled="true" defaultProvider="Provider.SybaseRoleProvider">

<providers>

<clear/>

<add applicationName="/" connectionStringName="ConnectionString" name="Provider.SybaseRoleProvider" type="Provider.SybaseRoleProvider"/>

</providers>

</roleManager>

and finish :-)

HTH

Share this post: | | | |
Posted: Apr 10 2008, 12:25 PM by go2ismail | with 5 comment(s)
Filed under: