Beispiel #1
0
        private string QueryEndClausesDefinition(QueryDefInfo queryInfo, string delimClause)
        {
            var endClausesAllArray = queryInfo.QueryEndClauses();
            var endClausesNonEmpty = endClausesAllArray.Where((s) => (s.CompareNoCase("") == false)).ToList();

            return(string.Join(delimClause, endClausesNonEmpty));
        }
Beispiel #2
0
        private string QueryConstraintDefinition(QueryDefInfo queryInfo, string delimClause)
        {
            var constraintAllArray = new string[] { QueryInnerJoinDefinition(queryInfo), QueryWhereConsDefinition(queryInfo) };
            var constraintNonEmpty = constraintAllArray.Where((s) => (s.CompareNoCase("") == false)).ToList();

            return(string.Join(delimClause, constraintNonEmpty));
        }
Beispiel #3
0
        public string CreateQuerySQL(QueryDefInfo queryInfo, uint versCreate)
        {
            if (queryInfo == null)
            {
                return(DBConstants.EMPTY_STRING);
            }

            string strTableFieldNames = TableColsDefinition(queryInfo, versCreate);
            string strQueryFieldNames = QueryColsDefinition(queryInfo, versCreate);
            string strConstraintQuote = QueryConstraintDefinition(queryInfo, "\nWHERE ");
            string strEndsClauseQuote = QueryEndClausesDefinition(queryInfo, "\n ");

            string strBegin = ("CREATE VIEW ");

            strBegin += queryInfo.QueryName();
            strBegin += NEW_LINE_STR;
            strBegin += "(";
            strBegin += strQueryFieldNames;
            strBegin += ")";
            strBegin += NEW_LINE_STR;
            strBegin += "AS SELECT";
            strBegin += NEW_LINE_STR;
            strBegin += strTableFieldNames;
            strBegin += NEW_LINE_STR;
            strBegin += "FROM ";
            strBegin += strConstraintQuote;

            string strSQL = StringUtils.JoinNonEmpty(NEW_LINE_STR, strBegin, strEndsClauseQuote);

            strSQL += NEW_LINE_STR;

            return(strSQL);
        }
Beispiel #4
0
        private string QueryWhereConsDefinition(QueryDefInfo queryInfo)
        {
            bool bTbJoinConds = false;
            bool bFilterConds = DbJoinWithWhere() == true;

            var queryWhereJoins = queryInfo.QueryWhereJoins(bFilterConds).Select((t) => (t.QueryTableFilterConditions(bTbJoinConds, bFilterConds))).ToList();
            var queryFiltrJoins = queryInfo.FiltrConsDefinition().ToList();

            string retTableSql = string.Join(" AND \n", queryWhereJoins.Concat(queryFiltrJoins));

            return(retTableSql);
        }
Beispiel #5
0
        private string TableColsDefinition(QueryDefInfo queryInfo, uint versCreate)
        {
            string strFieldNames = "";

            foreach (var field in queryInfo.TableColumnsSourceForVersion(versCreate))
            {
                strFieldNames += field;
                strFieldNames += ",";
                strFieldNames += NEW_LINE_STR;
            }

            string retTableSql = strFieldNames.TrimEnd(DBConstants.TRIM_CHARS);

            return(retTableSql);
        }
Beispiel #6
0
        private string QueryInnerJoinDefinition(QueryDefInfo queryInfo)
        {
            bool bTbJoinConds = true;
            bool bFilterConds = DbJoinWithWhere() == false;

            string strParenthesis = DBConstants.EMPTY_STRING;

            string strFieldNames = "";

            var queryTableJoins = queryInfo.QueryTableJoins();

            if (queryTableJoins.Count == 0)
            {
                var queryTables = queryInfo.QueryTableFroms();
                strFieldNames += string.Join(",", queryTables);

                strFieldNames += NEW_LINE_STR;
            }
            else
            {
                foreach (var tableJoin in queryTableJoins)
                {
                    strParenthesis += DbJoinOpenParenthesis();

                    strFieldNames += tableJoin.QueryTableJoinConditions(queryInfo, bTbJoinConds, bFilterConds);

                    strFieldNames += DbJoinCloseParenthesis();

                    strFieldNames += NEW_LINE_STR;
                }
            }

            string retTableSql = strParenthesis + strFieldNames.TrimEnd(DBConstants.TRIM_CHARS);

            return(retTableSql);
        }