Exemple #1
0
        internal static void Test12()
        {
            string p = "DECLARE @name VARCHAR = '@@name'";

            Energy.Query.Parameter.Bag bag = new Energy.Query.Parameter.Bag();
            bag.Add("@@name", 12345678);
            bag.SetType("@@name", Energy.Enumeration.FormatType.Number);
            bag.Set("name", "my name", Energy.Enumeration.FormatType.Text);
            string text = bag.Parse(p);

            Console.WriteLine(text);
        }
        public void Option()
        {
            string text;
            string have;
            string must;

            Energy.Query.Parameter.Bag bag;

            bag = new Energy.Query.Parameter.Bag();
            bag.Set("a", "'X'");
            bag.Set("b", true);
            bag.Set("c", 3.1415);
            bag.Set("@zero", 0);

            text = "@not_present @@xx";
            must = "@not_present @@xx";
            have = bag.Parse(text);
            Assert.AreEqual(must, have);

            text = "@not_present @@xx";
            must = "'' @@xx";
            bag.UnknownAsEmpty = true;
            have = bag.Parse(text);
            Assert.AreEqual(must, have);

            text = "@a @b @c";
            must = "'''X''' '1' '3.1415'";
            have = bag.Parse(text);
            Assert.AreEqual(must, have);

            bag.SetType("b", Energy.Enumeration.FormatType.Number);
            bag.SetType("c", Energy.Enumeration.FormatType.Number);

            text = "@a @b @c";
            must = "'''X''' 1 3.1415";
            have = bag.Parse(text);
            Assert.AreEqual(must, have);

            bag.Unicode = true;
            must        = "N'''X''' 1 3.1415";
            have        = bag.Parse(text);
            Assert.AreEqual(must, have);

            text           = "@Unicode";
            bag.Unicode    = true;
            bag["unicode"] = ' ';
            must           = "N' '";
            have           = bag.Parse(text);
            Assert.AreEqual(must, have);

            text               = "@unknown";
            bag.Unicode        = true;
            bag.UnknownAsEmpty = true;
            must               = "''";
            have               = bag.Parse(text);
            Assert.AreEqual(must, have);

            text              = "@unknown";
            bag.Unicode       = true;
            bag.UnknownAsNull = true;
            must              = "NULL";
            have              = bag.Parse(text);
            Assert.AreEqual(must, have);

            bag.SetType("zero", Energy.Enumeration.FormatType.Number);

            text        = "@zero @a";
            bag.Unicode = false;
            must        = "0 '''X'''";
            have        = bag.Parse(text);
            Assert.AreEqual(must, have);

            text = "@zero @a1";
            bag.UnknownAsEmpty = false;
            bag.UnknownAsNull  = false;
            must = "0 @a1";
            have = bag.Parse(text);
            Assert.AreEqual(must, have);
        }