public virtual bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
        {
            ParmValue = "";
            ParmName  = "";
            ParmType  = "";

            parmData = null;

            if (xmlNode.Attributes["ParameterCompiledValue"] != null)
            {
                ParmValue = xmlNode.Attributes["ParameterCompiledValue"].Value;
            }
            else if (xmlNode.Attributes["ParameterRuntimeValue"] != null)
            {
                ParmValue = xmlNode.Attributes["ParameterRuntimeValue"].Value;
            }

            if (string.IsNullOrEmpty(ParmValue))
            {
                return(false);
            }

            ParmName = xmlNode.Attributes["Column"].Value;

            if (string.IsNullOrEmpty(ParmName))
            {
                return(false);
            }

            return(true);
        }
        public bool TryGetParmDataFromXmlNode(XmlNode xmlNode, out ParmData parmData)
        {
            parmData = null;

            foreach (var parser in _parsers)
            {
                if (parser.TryParseNode(xmlNode, out parmData))
                {
                    return(true);
                }
            }
            return(false);
        }
Пример #3
0
 public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
 {
     if (base.TryParseNode(xmlNode, out parmData))
     {
         if (ParmValue.Length >= 8 &&
             ParmValue.Substring(0, 6) == "{guid'" && ParmValue.Substring(ParmValue.Length - 2, 2) == "'}")
         {
             ParmType = "uniqueidentifier";
             parmData = BuildParmData();
             return(true);
         }
     }
     return(false);
 }
        public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
        {
            if (base.TryParseNode(xmlNode, out parmData))
            {
                if (ParmValue.Length >= 2 &&
                    ParmValue.Substring(0, 2) == "0x")
                {
                    ParmType = "varbinary(max)";

                    parmData = BuildParmData();
                    return(true);
                }
            }
            return(false);
        }
 public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
 {
     if (base.TryParseNode(xmlNode, out parmData))
     {
         ParmType = "UNKNOWN";
         parmData = new ParmData()
         {
             Name  = ParmName,
             Value = ParmValue,
             Type  = ParmType
         };
         return(true);
     }
     return(false);
 }
        public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
        {
            if (base.TryParseNode(xmlNode, out parmData))
            {
                if (ParmValue.Length >= 2 &&
                    ParmValue.Substring(0, 1) == "(" && ParmValue.Substring(ParmValue.Length - 1, 1) == ")")
                {
                    string parsedValue = ParmValue;

                    char[] chars = { '(', ')' };
                    parsedValue = parsedValue.Trim(chars);

                    short shortVal;
                    int   intVal;
                    long  longVal;

                    if (parsedValue.IndexOf('.') != -1)
                    {
                        parsedValue = parsedValue.TrimEnd('0').TrimEnd('.');
                        ParmType    = string.Format("numeric({0},{1})",
                                                    parsedValue.Length - (parsedValue.IndexOf('.') != -1 ? 1 : 0),
                                                    parsedValue.IndexOf('.') != -1 ? parsedValue.Substring(parsedValue.IndexOf('.')).Length - 1 : 0);
                    }
                    else
                    if (short.TryParse(parsedValue, out shortVal))
                    {
                        ParmType = "smallint";
                    }
                    else if (int.TryParse(parsedValue, out intVal))
                    {
                        ParmType = "smallint";
                    }
                    else if (long.TryParse(parsedValue, out longVal))
                    {
                        ParmType = "bigint";
                    }

                    parmData       = BuildParmData();
                    parmData.Value = parsedValue;
                    return(true);
                }
            }
            return(false);
        }
 public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
 {
     if (base.TryParseNode(xmlNode, out parmData))
     {
         if (ParmValue.Length >= 2 &&
             ParmValue.Substring(0, 1) == "'" && ParmValue.Substring(ParmValue.Length - 1, 1) == "'")
         {
             ParmType = "varchar(" + Math.Max(ParmValue.Length - 2, 1) + ")";
             parmData = BuildParmData();
             return(true);
         }
         else if (ParmValue.Length >= 3 &&
                  ParmValue.Substring(0, 2) == "N'" && ParmValue.Substring(ParmValue.Length - 1, 1) == "'")
         {
             ParmType = "nvarchar(" + Math.Max(ParmValue.Length - 3, 1) + ")";
             parmData = BuildParmData();
             return(true);
         }
     }
     return(false);
 }
        public override bool TryParseNode(XmlNode xmlNode, out ParmData parmData)
        {
            if (base.TryParseNode(xmlNode, out parmData))
            {
                if (ParmValue.Length >= 2 &&
                    ParmValue.Substring(0, 1) == "'" && ParmValue.Substring(ParmValue.Length - 1, 1) == "'")
                {
                    char[]   chars = { '\'', '\'' };
                    DateTime dateTimeVal;
                    string   parmValueTrimmed = ParmValue.Trim(chars);
                    if (DateTime.TryParse(parmValueTrimmed, out dateTimeVal))
                    {
                        ParmType         = "datetime";
                        parmValueTrimmed = "{ts '" + Regex.Replace(parmValueTrimmed, "\\.0*$", "") + "'}";

                        parmData       = BuildParmData();
                        parmData.Value = parmValueTrimmed;
                        return(true);
                    }
                }
            }
            return(false);
        }
Пример #9
0
 public void AddParmData(ParmData PD)
 {
     ParmDatas.Add(PD);
 }