Exemplo n.º 1
0
        /// <summary>
        /// 获得字典条目列表
        /// </summary>
        /// <param name="Request"></param>
        /// <param name="Response"></param>
        /// <returns></returns>
        public string QryDicDataList(HttpRequest Request, HttpResponse Response)
        {
            string strXML     = Request["txtXML"];
            string strDicName = XmlFun.getNodeValue(strXML, "//QUERYCONDITION/@dicname");

            return(Dic.dicDataList(strXML, strDicName));
        }
Exemplo n.º 2
0
 /// <summary>
 /// 获得数据节点下指定节点的内容
 /// </summary>
 /// <param name="strNodeName">节点名称</param>
 /// <returns>数据节点下指定节点的内容</returns>
 public string getDataValue(string strNodeName)
 {
     return(XmlFun.getNodeValue(m_doc_Self,
                                Common.XDOC_ROOT + Common.BAR +
                                Common.XDOC_DATAINFO + Common.BAR + strNodeName));
 }
Exemplo n.º 3
0
 public string getErrorValue(string strNodeName)
 {
     return(XmlFun.getNodeValue(m_doc_Self,
                                Common.XDOC_ROOT + Common.BAR +
                                Common.XDOC_ERRORINFO + Common.BAR + strNodeName));
 }
Exemplo n.º 4
0
        /// <summary>
        /// 根据 XML 文档解析得到T-SQL查询Where语句
        /// </summary>
        /// <param name="ele">XmlElement节点对象</param>
        /// <returns>解析好的T-SQL查询Where语句</returns>
        private string parseConditions(XmlElement ele)
        {
            XmlNodeList it_Condition  = ele.SelectNodes(Common.BAR2 + Common.XDOC_CONDITION);
            XmlNodeList it_Conditions = ele.SelectNodes(Common.BAR2 + Common.XDOC_CONDITIONS);

            string str_Where = "";
            string str_Type  = "";

            for (int k = 0; k < it_Condition.Count; k++)
            {
                if (k > 0)
                {
                    str_Type = XmlFun.getNodeValue(it_Conditions.Item(k - 1), Common.XDOC_TYPE);
                    str_Type = General.empty(str_Type) ? "" : str_Type.Trim().ToUpper();
                }

                /// 获得查询节点
                if (!General.empty(str_Where))
                {
                    if (General.empty(str_Type))
                    {
                        throw new Exception("QueryDoc.parseConditions.77.未提供类型");
                    }

                    str_Where += Common.SPACE + str_Type + Common.SPACE;
                }

                XmlNode ele_Condition = it_Condition.Item(k);

                string str_Alias    = XmlFun.getAttributValue(ele_Condition, Common.XML_PROP_ALIAS);
                string str_DataType = XmlFun.getAttributValue(ele_Condition, Common.XML_PROP_DATATYPE);
                int    int_DataType = General.empty(str_DataType) ? 0 : Convert.ToInt32(str_DataType);

                string str_FieldName = XmlFun.getNodeValue(ele_Condition, Common.XDOC_FIELDNAME);
                str_FieldName = General.empty(str_Alias) ? str_FieldName : str_Alias + Common.DOT + str_FieldName;

                /// +
                /// 如果是查询出生日期,则获得该字典的 sv 属性,用来确定是否是按照年龄来查询的
                /// 如果是 AGERANGE 则说明是按照年龄来查询
                /// 如果是 空,则说明是按照出生日期来查询
                string str_Sv        = XmlFun.getNodeValue(ele_Condition, Common.XDOC_FIELDNAME + Common.BAR + "@" + Common.XML_PROP_SV);
                string str_Operation = XmlFun.getNodeValue(ele_Condition, Common.XDOC_OPERATION);
                string str_DataValue = XmlFun.getNodeValue(ele_Condition, Common.XDOC_VALUE);

                str_Operation = str_Operation.Trim().ToUpper();

                /// 单独处理日期类型的字段
                if (int_DataType == 3)
                {
                    /// 按年龄来进行查询
                    if (str_Sv.Equals(Common.XML_AGERANGE))
                    {
                        str_Where += General.opYearDate(str_FieldName, str_DataValue, str_Operation);
                    }
                    else
                    {
                        str_Where += General.opDate(str_FieldName, str_DataValue, str_Operation);
                    }
                }
                else
                {
                    if (int_DataType == Common.IDT_BINARY)
                    {
                        throw new Exception("QueryDoc.parseConditions.函数不能处理二进制类型的数据");
                    }

                    if (str_Operation.ToUpper().Equals("NOT IN") || str_Operation.ToUpper().Equals("IS") || str_Operation.ToUpper().Equals("IS NOT"))
                    {
                        str_Where += str_FieldName + Common.SPACE +
                                     str_Operation + Common.SPACE +
                                     str_DataValue;
                    }
                    else
                    {
                        str_Where += str_FieldName + Common.SPACE +
                                     str_Operation + Common.SPACE +
                                     General.converType(int_DataType, str_DataValue, str_FieldName);
                    }
                }
            }

            return(str_Where);
        }