Пример #1
0
        private void GetAllTableColumn(QColumnBase column, List <QTableColumn> list)
        {
            if (column._columnType == Enums.ColumnType.Code)
            {
                return;
            }
            if (column._columnType == Enums.ColumnType.None)
            {
                return;
            }
            if (column._columnType == Enums.ColumnType.Value)
            {
                return;
            }
            if (column._columnType == Enums.ColumnType.Column)
            {
                list.Add((QTableColumn)column);
                return;
            }
            var args = column._functionArgs;

            if (args == null)
            {
                return;
            }

            foreach (var item in args)
            {
                if (item is QColumnBase)
                {
                    GetAllTableColumn((QColumnBase)item, list);
                }
            }
        }
        public virtual string Delete(List <QTable> tables, QColumnBase pk, string tableName, string fromtable, string jointables, string where)
        {
            if (object.Equals(pk, null))
            {
                throw new NoPrimaryKeyException();
            }
            var pk1 = ((IColumnConvert)pk).ToSql(this, 1);
            var pk2 = ((IColumnConvert)pk).ToSql(this, tables.Count);

            return($"DELETE {tableName} WHERE {pk1} IN (SELECT {pk2} FROM {fromtable} {jointables} WHERE {where});");
        }
Пример #3
0
 /// <summary>
 /// 获取数量
 /// </summary>
 /// <param name="distinctColumn">列</param>
 /// <returns></returns>
 public int SelectCount(QColumnBase distinctColumn)
 {
     return(GetSqlBuilder().SelectCount(distinctColumn));
 }
 protected static QCondition CreateCondition(QColumnBase col1, string op, object col2)
 {
     return(new QColumnValueCondition(col1, op, col2));
 }
Пример #5
0
 /// <summary>
 /// 累加到【Order By】语句
 /// </summary>
 /// <param name="column">列</param>
 /// <param name="orderType">order类型</param>
 /// <returns></returns>
 public QTable <T> OrderBy(QColumnBase column, OrderType orderType = OrderType.Asc)
 {
     GetSqlBuilder().OrderBy(column, orderType);
     return(this);
 }
Пример #6
0
 /// <summary>
 /// 累加到【Group By】语句
 /// </summary>
 /// <param name="column">列</param>
 /// <param name="columns">列</param>
 /// <returns></returns>
 public QTable <T> GroupBy(QColumnBase column, params QColumnBase[] columns)
 {
     GetSqlBuilder().GroupBy(column, columns);
     return(this);
 }