/// <summary> /// Lấy dữ liệu trả về là mảng Object /// </summary> /// <param name="obj">Biến truyền vào</param> /// <param name="TypeDataOutPut">Kiểu dữ liệu trả về</param> /// <param name="procedure">Tên thủ tục</param> public static object[] GetOracleDataObject(object obj, string TypeDataOutPut, string procedure) { char[] type = TypeDataOutPut.ToCharArray(); object[] objectReturn = new object[type.Length]; SessionHelper se = SessionHelper.GetSessionUser(); OracleConnection conn = GetOracleConnection(); OracleCommand command = new OracleCommand { Connection = conn }; try { string pramater = ""; pramater = "," + LibConvert.ObjectToChar(obj); for (int i = 0; i < type.Length; i++) { string pare = type[i].ToString().Trim(); OracleDbType typeDb = TypeDbOra(type[i]); AttachParamater(ref command, "return" + i.ToString(), typeDb); pramater = pramater + ",:return" + i.ToString(); } command.CommandText = "Begin " + se.dbo + "." + procedure + "(" + se.tso + pramater + "); end;"; OracleDataAdapter oraAdapter = new OracleDataAdapter(command); DataSet set = new DataSet(); oraAdapter.Fill(set); int countCusor = 0; for (int j = 0; j < type.Length; j++) { switch (type[j]) { case 'R': { objectReturn[j] = set.Tables[countCusor]; countCusor++; break; } case 'N': objectReturn[j] = command.Parameters["return" + j.ToString().Trim()].Value.ToString(); break; default: objectReturn[j] = command.Parameters["return" + j.ToString().Trim()].Value.ToString(); break; } } } finally { command.Parameters.Clear(); conn.Close(); } return(objectReturn); }
/// <summary> ///gọi thủ tục với tham số truyền vào là mảng Object /// </summary> /// <param name="obj">Mảng tham số Object truyền vào</param> /// <param name="procedure">Tên thủ tục</param> /// <returns>Trả lại là kiểu dataTable</returns> public static DataTable GetOracleData(object[] obj, string procedure) { DataTable table = new DataTable(); SessionHelper _se = new SessionHelper(); if (_se == null) { throw new Exception("loi: Mất kết nối. Đăng nhập lại:loi"); } OracleConnection cnn = GetOracleConnection(); try { OracleCommand command = new OracleCommand { Connection = cnn }; AttachParamater(ref command, "cs1", OracleDbType.RefCursor); string str = ""; for (int i = 0; i < obj.Length; i++) { str = str + "," + LibConvert.ObjectToChar(obj[i]); } str = str + ",:cs1"; if (!string.IsNullOrEmpty(_se.tso)) { str = _se.tso + str; } command.CommandText = "Begin " + _se.dbo + "." + procedure + "(" + str + "); end;"; try { new OracleDataAdapter(command).Fill(table); } finally { command.Parameters.Clear(); } } finally { cnn.Close(); } return(table); }
/// <summary> /// thực thi một thủ tục với tham số truyền vào là bject /// </summary> /// <param name="obj">Tham số truyền vào</param> /// <param name="procedure">Tên thủ tục</param> public static void Execute(object obj, string procedure) { SessionHelper se = SessionHelper.GetSessionUser(); OracleConnection conn = GetOracleConnection(); try { OracleCommand command = new OracleCommand { Connection = conn }; string str = "," + LibConvert.ObjectToChar(obj); command.CommandText = "Begin " + se.dbo + "." + procedure + "(" + se.tso + str + "); end;"; command.ExecuteNonQuery(); } finally { conn.Close(); } }