Beispiel #1
0
        public BindingCollection <TagEntity> GetRequestTags(string requestId)
        {
            _logger.Debug("GetRequestTags.");
            if (string.IsNullOrEmpty(requestId))
            {
                throw new ArgumentNullException("RequestId param can not be null.");
            }
            _logger.Debug("Params: requestId = {0};", requestId.ToString());

            BindingCollection <TagEntity> result = new BindingCollection <TagEntity>();

            OraCommand command = new OraCommand("REQ_PKG.SEL_REQ_TAG");

            command.CommandType = CommandType.StoredProcedure;
            command.AddDBParam(new OraParamInt32("p_req_id", ParameterDirection.Input, Convert.ToInt32(requestId)));
            OraParamRefCursor refCur = new OraParamRefCursor("p_reqTag_cr", ParameterDirection.Output);

            command.AddDBParam(refCur);
            Execute(command);

            if (refCur.ParamValue != null)
            {
                foreach (DataRow reqRow in refCur.ParamValue.Rows)
                {
                    result.Add(ToTag(reqRow));
                }
            }

            return(result);
        }
Beispiel #2
0
        public void TestProcRefCur()
        {
            using (IDbConnection conn = new OraConnection())
            {
                conn.OpenConnection("chipanddale", "chipanddale", "xe");
                IDbMgr dbManager = new OraDBMgr(conn, _LogMgr);

                // procedure ProcRefCur (p_date out date, p_cur in out sys_refcursor) as
                IDbCommand command = new OraCommand("test_pkg.ProcRefCur");
                command.CommandType = System.Data.CommandType.StoredProcedure;

                command.AddDBParam(new OraParamDateTime("p_date", System.Data.ParameterDirection.Output, null));
                OraParamRefCursor refCur = new OraParamRefCursor("p_cur", System.Data.ParameterDirection.InputOutput);
                command.AddDBParam(refCur);

                using (DbTransaction transaction = new DbTransaction(dbManager))
                {
                    dbManager.Execute(command);
                    transaction.Success = true;
                }

                Debug.Assert(refCur.ParamValue.Rows.Count != 0, "p_cur");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[0] != null, "p_cur[0][0]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[1] != null, "p_cur[0][1]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[2] != null, "p_cur[0][2]");
                Debug.Assert(command.Params["p_date"].GetValue() != null, "p_date");

                object o  = refCur.ParamValue.Rows[0]["blob_"];
                byte[] ba = (byte[])o;
            }
        }
Beispiel #3
0
        public RequestEntity GetRequestById(string requestId)
        {
            _logger.Debug("GetRequestById.");
            if (string.IsNullOrEmpty(requestId))
            {
                throw new ArgumentNullException("RequestId param can not be null.");
            }
            _logger.Debug("Params: requestId = {0};", requestId.ToString());

            RequestEntity result = null;

            OraCommand command = new OraCommand("REQ_PKG.SEL_REQ_BYID");

            command.CommandType = CommandType.StoredProcedure;
            command.AddDBParam(new OraParamInt32("p_id", ParameterDirection.Input, Convert.ToInt32(requestId)));
            OraParamRefCursor refCur = new OraParamRefCursor("p_req_cr", ParameterDirection.Output);

            command.AddDBParam(refCur);
            Execute(command);

            if (refCur.ParamValue != null && refCur.ParamValue.Rows.Count > 0)
            {
                result = ToRequest(refCur.ParamValue.Rows[0]);
                result.Tags.Fill(GetRequestTags(requestId));
                result.Attaches.Fill(GetRequestAttaches(requestId));
            }

            return(result);
        }
Beispiel #4
0
        public void TestFuncRefCur()
        {
            using (IDbConnection conn = new OraConnection())
            {
                conn.OpenConnection("chipanddale", "chipanddale", "xe");
                IDbMgr dbManager = new OraDBMgr(conn, _LogMgr);

                // function FuncRefCur(p_int32 in number, p_clob in out number, p_cur out sys_refcursor) return date;
                IDbCommand command = new OraCommand("test_pkg.FuncRefCur");
                command.CommandType = System.Data.CommandType.StoredProcedure;

                OraParamDateTime returnParam = new OraParamDateTime("return", System.Data.ParameterDirection.ReturnValue, null);
                command.AddDBParam(returnParam);
                command.AddDBParam(new OraParamInt32("p_int32", System.Data.ParameterDirection.Input, null));
                command.AddDBParam(new OraParamCLOB("p_clob", System.Data.ParameterDirection.InputOutput, "132"));
                OraParamRefCursor refCur = new OraParamRefCursor("p_cur", System.Data.ParameterDirection.Output);
                command.AddDBParam(refCur);

                using (DbTransaction transaction = new DbTransaction(dbManager))
                {
                    dbManager.Execute(command);
                    transaction.Success = true;
                }

                Debug.Assert(refCur.ParamValue.Rows.Count != 0, "p_cur");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[0] != null, "p_cur[0][0]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[1] != null, "p_cur[0][1]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[2] != null, "p_cur[0][2]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[3] != null, "p_cur[0][3]");
                Debug.Assert(command.Params["p_clob"].GetValue() != null, "p_clob");
                Debug.Assert(command.Params["return"].GetValue() != null, "return");
            }
        }
Beispiel #5
0
        public BindingCollection <UserEntity> GetUsers()
        {
            _logger.Debug("GetUsers.");

            BindingCollection <UserEntity> result = new BindingCollection <UserEntity>();
            OraCommand command = new OraCommand("MAIN_PKG.SEL_USER");

            command.CommandType = CommandType.StoredProcedure;
            OraParamRefCursor refCur = new OraParamRefCursor("p_user_cr", ParameterDirection.Output);

            command.AddDBParam(refCur);

            Execute(command);
            if (refCur.ParamValue != null)
            {
                foreach (DataRow userRow in refCur.ParamValue.Rows)
                {
                    result.Add(new UserEntity()
                    {
                        Id    = userRow["ID"].ToString(),
                        Login = userRow["USER_NAME"].ToString(),
                        Name  = userRow["FULL_NAME"].ToString()
                    });
                }
            }
            return(result);
        }
Beispiel #6
0
        public void TestFuncAll()
        {
            using (IDbConnection conn = new OraConnection())
            {
                conn.OpenConnection("chipanddale", "chipanddale", "xe");
                IDbMgr dbManager = new OraDBMgr(conn, _LogMgr);

                // function FuncAll(p_int32 in out number, p_double in out number, p_date in out date, p_string in out varchar2, p_clob in out clob, p_blob in out blob, p_cur out sys_refcursor, p_cur2 in out sys_refcursor) return varchar2;
                IDbCommand command = new OraCommand("test_pkg.FuncAll");
                command.CommandType = System.Data.CommandType.StoredProcedure;

                OraParamString returnParam = new OraParamString("return", System.Data.ParameterDirection.ReturnValue, null, 2000);
                command.AddDBParam(returnParam);
                command.AddDBParam(new OraParamInt32("p_int32", System.Data.ParameterDirection.InputOutput, null));
                command.AddDBParam(new OraParamDouble("p_double", System.Data.ParameterDirection.InputOutput, -1.234));
                command.AddDBParam(new OraParamDateTime("p_date", System.Data.ParameterDirection.InputOutput, DateTime.Now));
                command.AddDBParam(new OraParamString("p_string", System.Data.ParameterDirection.InputOutput, "INPUT ", 2000));
                command.AddDBParam(new OraParamCLOB("p_clob", System.Data.ParameterDirection.InputOutput, null));
                command.AddDBParam(new OraParamBLOB("p_blob", System.Data.ParameterDirection.InputOutput, (byte[])null));
                OraParamRefCursor refCur = new OraParamRefCursor("p_cur", System.Data.ParameterDirection.Output);
                command.AddDBParam(refCur);
                OraParamRefCursor refCur2 = new OraParamRefCursor("p_cur2", System.Data.ParameterDirection.InputOutput);
                command.AddDBParam(refCur2);

                using (DbTransaction transaction = new DbTransaction(dbManager))
                {
                    dbManager.Execute(command);
                    transaction.Success = true;
                }

                Debug.Assert(returnParam.ParamValue != null, "returnParam");
                Debug.Assert(command.Params["p_int32"].GetValue() != null, "p_int32");
                Debug.Assert(command.Params["p_double"].GetValue() != null, "p_double");
                Debug.Assert(command.Params["p_date"].GetValue() != null, "p_date");
                Debug.Assert(command.Params["p_string"].GetValue() != null, "p_string");
                Debug.Assert(command.Params["p_clob"].GetValue() != null, "p_clob");
                Debug.Assert(command.Params["p_blob"].GetValue() != null, "p_blob");

                Debug.Assert(refCur.ParamValue.Rows.Count != 0, "p_cur");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[0] != null, "p_cur[0][0]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[1] != null, "p_cur[0][1]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[2] != null, "p_cur[0][2]");
                Debug.Assert(refCur.ParamValue.Rows[0].ItemArray[3] != null, "p_cur[0][3]");

                Debug.Assert(refCur2.ParamValue.Rows.Count != 0, "p_cur2");
                Debug.Assert(refCur2.ParamValue.Rows[0].ItemArray[0] != null, "p_cur2[0][0]");
                Debug.Assert(refCur2.ParamValue.Rows[0].ItemArray[1] != null, "p_cur2[0][1]");
                Debug.Assert(refCur2.ParamValue.Rows[0].ItemArray[2] != null, "p_cur2[0][2]");
            }
        }
Beispiel #7
0
        public BindingCollection <RequestEntity> GetRequests(RequestListFilterEntity filter)
        {
            _logger.Debug("GetRequests.");
            if (filter == null)
            {
                throw new ArgumentNullException("Filter param can not be null.");
            }
            _logger.Debug("Params: filter = {0};", filter.ToInternalString());

            BindingCollection <RequestEntity> result = new BindingCollection <RequestEntity>();

            _commonDbService.SetParam("FROM", filter.StartDateTimeString);
            _commonDbService.SetParam("UNTIL", filter.StopDateTimeString);
            _commonDbService.SetParam("STATUS", filter.StatusIdList);
            _commonDbService.SetParam("ID_ORG", filter.OrganizationIdtString);
            _commonDbService.SetParam("ID_COMP", filter.ApplicationIdtString);
            _commonDbService.SetParam("ID_USER", filter.UserIdtString);
            _commonDbService.SetParam("ID_CREATOR", filter.CreatorIdtString);
            _commonDbService.SetParam("TAGS", filter.TagIdList);

            OraCommand command = new OraCommand("REQ_PKG.SEL_REQ");

            command.CommandType = CommandType.StoredProcedure;
            OraParamRefCursor refCur = new OraParamRefCursor("p_req_cr", ParameterDirection.Output);

            command.AddDBParam(refCur);
            Execute(command);

            if (refCur.ParamValue != null)
            {
                foreach (DataRow reqRow in refCur.ParamValue.Rows)
                {
                    result.Add(ToRequest(reqRow));
                }
            }

            return(result);
        }
Beispiel #8
0
        public void TestMultiTread2()
        {
            Thread thread1 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("select * from all_objects");
                    command.CommandType = System.Data.CommandType.Text;

                    System.Data.DataTable tab = null;
                    for (int i = 0; i < 50; i++)
                    {
                        tab = dbManager.ExecuteSelect(command);
                    }
                }
            });

            Thread thread2 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("insert into  test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)");
                    command.CommandType = System.Data.CommandType.Text;

                    using (DbTransaction transaction = new DbTransaction(dbManager))
                    {
                        for (int i = 0; i < 1000; i++)
                        {
                            dbManager.Execute(command);
                        }
                        transaction.Success = true;
                    }
                }
            });

            Thread thread3 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("begin execute immediate 'create or replace view test_view as select 1 col_name from dual'; end;");
                    command.CommandType = System.Data.CommandType.Text;

                    for (int i = 0; i < 100; i++)
                    {
                        dbManager.Execute(command);
                    }
                }
            });

            Thread thread4 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("test_pkg.FuncAll");
                    command.CommandType = System.Data.CommandType.StoredProcedure;

                    for (int i = 0; i < 100; i++)
                    {
                        command.Params.Clear();
                        OraParamString returnParam = new OraParamString("return", System.Data.ParameterDirection.ReturnValue, null, 2000);
                        command.AddDBParam(returnParam);
                        command.AddDBParam(new OraParamInt32("p_int32", System.Data.ParameterDirection.InputOutput, null));
                        command.AddDBParam(new OraParamDouble("p_double", System.Data.ParameterDirection.InputOutput, -1.234));
                        command.AddDBParam(new OraParamDateTime("p_date", System.Data.ParameterDirection.InputOutput, DateTime.Now));
                        command.AddDBParam(new OraParamString("p_string", System.Data.ParameterDirection.InputOutput, "INPUT ", 2000));
                        command.AddDBParam(new OraParamCLOB("p_clob", System.Data.ParameterDirection.InputOutput, null));
                        command.AddDBParam(new OraParamBLOB("p_blob", System.Data.ParameterDirection.InputOutput, (byte[])null));
                        OraParamRefCursor refCur = new OraParamRefCursor("p_cur", System.Data.ParameterDirection.Output);
                        command.AddDBParam(refCur);
                        OraParamRefCursor refCur2 = new OraParamRefCursor("p_cur2", System.Data.ParameterDirection.InputOutput);
                        command.AddDBParam(refCur2);
                        using (DbTransaction transaction = new DbTransaction(dbManager))
                        {
                            dbManager.Execute(command);
                            dbManager.Execute(command);
                            transaction.Success = true;
                        }
                    }
                }
            });

            Thread thread5 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("insert into  test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)");
                    command.CommandType = System.Data.CommandType.Text;

                    using (DbTransaction transaction = new DbTransaction(dbManager))
                    {
                        for (int i = 0; i < 1000; i++)
                        {
                            dbManager.Execute(command);
                        }
                        transaction.Success = true;
                    }
                }
            });

            Thread thread6 = new Thread(() =>
            {
                using (IDbConnection conn = new OraConnection())
                {
                    conn.OpenConnection("chipanddale", "chipanddale", "xe");
                    IDbMgr dbManager    = new OraDBMgr(conn, _LogMgr);
                    IDbCommand command  = new OraCommand("insert into  test_tab (int32, double, string, datetime) values (1, 1.2, '123', sysdate)");
                    command.CommandType = System.Data.CommandType.Text;

                    for (int i = 0; i < 1000; i++)
                    {
                        using (DbTransaction transaction = new DbTransaction(dbManager))
                        {
                            dbManager.Execute(command);
                            transaction.Success = true;
                        }
                    }
                }
            });

            thread1.Start();
            thread2.Start();
            thread3.Start();
            thread4.Start();
            thread5.Start();
            thread6.Start();

            thread1.Join();
            thread2.Join();
            thread3.Join();
            thread4.Join();
            thread5.Join();
            thread6.Join();
        }