Exemple #1
0
        /// <summary>
        /// Build a Where conditional for select query
        /// </summary>
        /// <param name="pParams">List of parameters</param>
        /// <returns>A string's format ([par1]=valu) AND ([par1] = value) </returns>
        protected String BuildWhere(params RecordParameter[] pParams)
        {
            String Where = String.Empty;

            if (pParams != null)
            {
                int pIndex = 0;
                foreach (RecordParameter param in pParams)
                {
                    if (param.OwnerParameter.ParameterName != String.Format("p{0}", pIndex))
                    {
                        param.ParameterField = param.ParameterName.Clone() as String;
                        param.ParameterName  = String.Format("p{0}", pIndex);
                        param.OwnerParameter.ParameterName = String.Format("p{0}", pIndex);
                    }

                    if (!String.IsNullOrEmpty(Where))
                    {
                        Where += " AND ";
                    }
                    Where += CompareKindToString.SignWithFormat(RecordConnection, param, param.CompareKindExpression);
                    pIndex++;
                }
            }
            return(Where);
        }
Exemple #2
0
        /// <summary>
        /// Compose a String Where result with list of parameters
        /// </summary>
        /// <param name="conditionType">Condition Type</param>
        /// <param name="childs">Parameters</param>
        /// <param name="startupIndexParameter">Index current parameters</param>
        /// <param name="listParameters">List output of parameters</param>
        /// <returns>String Format Where condition</returns>
        protected String ComposeParametersFormat(ConditionType conditionType, List <RecordParameter> childs, ref int startupIndexParameter, List <RecordParameter> listParameters)
        {
            String        result        = String.Empty;
            String        composeFormat = String.Empty;
            String        Operation     = conditionType == ConditionType.And ? "AND" : "OR";
            List <String> cs            = new List <string>();

            for (int i = 0; i < childParameters.Count; i++)
            {
                if (childParameters[i].OwnerParameter.ParameterName != String.Format("p{0}", startupIndexParameter))
                {
                    childParameters[i].ParameterField = childParameters[i].ParameterName.Clone() as String;
                    childParameters[i].ParameterName  = String.Format("p{0}", startupIndexParameter);
                    childParameters[i].OwnerParameter.ParameterName = String.Format("p{0}", startupIndexParameter);
                }
                String singlePar = CompareKindToString.SignWithFormat(childParameters[i], childParameters[i].CompareKindExpression);

                composeFormat += " " + Operation + " {" + i + "}";
                cs.Add(singlePar);
                startupIndexParameter++;
                if (CompareKindToString.IsSignWithAddingParameter(childParameters[i].CompareKindExpression))
                {
                    listParameters.Add(childParameters[i]);
                }
            }
            if (conditionType == ConditionType.Or)
            {
                result = String.Format(composeFormat.Substring(4), cs.ToArray());
            }
            if (conditionType == ConditionType.And)
            {
                result = String.Format(composeFormat.Substring(5), cs.ToArray());
            }
            return(result);
        }