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