Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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();
            }
        }