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); }