Ejemplo n.º 1
0
        void RemoveUnusedParameters()
        {
            DbParameterCollection parameters = m_inner.Parameters;

            if (m_params == null)
            {
                Debug.Assert(parameters.Count == 0);
                return;
            }
            else if (parameters.Count == 0)
            {
                return;
            }
            else
            {
                Debug.Assert(m_params != null);
            }

            ParamPicker picker = new ParamPicker();

            m_statement.Traverse(picker);

            for (int i = parameters.Count - 1; i >= 0; --i)
            {
                DbParameter last = parameters[i];
                string      name = last.ParameterName;
                if ((name != null) && !name.Equals(""))
                {
                    if (!picker.IsParam(name))
                    {
                        parameters.Remove(last);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public void GetUniqueParams()
        {
            ParamPicker paramPicker = new ParamPicker();

            Assert.IsNull(paramPicker.GetUniqueParams());

            IStatement statement = Factory.CreateStatement(
                "update t set id=:id, a=:a, b=:b where id=@ID");

            statement.Traverse(paramPicker);

            string[] actual   = paramPicker.GetUniqueParams();
            string[] expected = { ":a", ":b", ":id" };
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 3
0
        public void TestGetAllParams()
        {
            ParamPicker paramPicker = new ParamPicker();

            Assert.IsNull(paramPicker.GetAllParams());

            IStatement statement = Factory.CreateStatement(
                "INSERT t(a, b, c) VALUES(@a, @b, @c)");

            statement.Traverse(paramPicker);

            string[] actual   = paramPicker.GetAllParams();
            string[] expected = { "@a", "@b", "@c" };
            Assert.AreEqual(expected, actual);

            paramPicker = new ParamPicker();
            statement   = Factory.CreateStatement(
                "INSERT t(a, b, c) VALUES(1, 2, 3)");
            actual = paramPicker.GetAllParams();
            Assert.IsNull(actual);
        }