Пример #1
0
        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();
            }
        }
Пример #2
0
        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);
        }