public IReturnType execProc(string sqlString, List <DBParams> arrParam, bool useStandard = true) { List <DBParams> standardParams = new List <DBParams>(); if (useStandard) { standardParams.Add(new DBParams("intreturnCode", "I")); standardParams.Add(new DBParams("strReturnMsg", "V")); } foreach (DBParams db in standardParams) { arrParam.Add(db); } cmd = SetCommand(sqlString); cmd.CommandType = CommandType.StoredProcedure; try { AddParameters(arrParam); IReturnType rt = new DALReturnType(); cmd.ExecuteNonQuery(); if (cmd.Parameters["intreturnCode"].Value.ToString() != "") { rt.ReturnCode = (int?)cmd.Parameters["intreturnCode"].Value; } rt.ReturnMessage = cmd.Parameters["strReturnMsg"].Value.ToString(); return(rt); } catch (Exception ex) { throw ex; } finally { conn.Close(); } }
public IReturnType execBlob(string sqlString, List <DBParams> arrParam, byte[] Image, string ImageName = "arg_file", bool useStandard = true) { List <DBParams> standardParams = new List <DBParams>(); if (useStandard) { standardParams.Add(new DBParams("intreturnCode", "I")); standardParams.Add(new DBParams("strReturnMsg", "V")); } foreach (DBParams db in standardParams) { arrParam.Add(db); } cmd = SetCommand(); OracleTransaction tx = cmd.Connection.BeginTransaction(); cmd.Transaction = tx; StringBuilder strCommand = new StringBuilder("declare xx blob; begin dbms_lob.createtemporary(xx, false, 0);"); strCommand.Append(" :tempblob1:= xx;"); cmd.Parameters.Add(new OracleParameter("tempblob1", OracleType.Blob)).Direction = ParameterDirection.Output; strCommand.Append(" end;"); cmd.CommandType = CommandType.Text; cmd.CommandText = strCommand.ToString(); cmd.ExecuteNonQuery(); OracleLob blob = cmd.Parameters["tempblob1"].Value as OracleLob; blob.Write(Image, 0, Image.Length); cmd.Parameters.Clear(); cmd.CommandText = sqlString; cmd.CommandType = CommandType.StoredProcedure; AddParameters(arrParam); cmd.Parameters.Add(ImageName, OracleType.Blob).Value = blob; IReturnType rt = new DALReturnType(); cmd.ExecuteNonQuery(); if (cmd.Parameters["intreturnCode"].Value.ToString() != "") { rt.ReturnCode = (int?)cmd.Parameters["intreturnCode"].Value; } rt.ReturnMessage = cmd.Parameters["strReturnMsg"].Value.ToString(); tx.Commit(); conn.Close(); return(rt); }