internal QColumnValueCondition(QColumn column1, string op, object value) { leftColumn = column1; this.op = op; this.value = value; //if ("=|==|<>|!=|>|<|>=|<=".Contains(op)) { // if (value is Int16 || value is Int32 || value is Int64 // || value is UInt16 || value is UInt32 || value is UInt64 // || value is Single || value is Double || value is Decimal // ) { // this.value = value.ToString(); // } // if (value is Int16? || value is Int32? || value is Int64? // || value is UInt16? || value is UInt32? || value is UInt64? // || value is Single? || value is Double? || value is Decimal? // ) { // if (object.Equals(null, value) == false) { // this.value = value.ToString(); // } // } // if (value is bool) { // this.value = (bool)value ? "1" : "0"; // } // if (value is bool?) { // if (object.Equals(null, value) == false) { // this.value = ((bool?)value).Value ? "1" : "0"; // } // } //} isSetValaue = true; }
public FormCriteriaAnd(FormColumnSelection frm, QColumn col) : this() { this.frm = frm; this.column = col; onLoadForm(); }
public void OrderBy(QColumn column, OrderType orderType = OrderType.Asc) { if (_jump) { _jump = false; return; } _orderBys.Add(new OrderItem(column, orderType)); }
public void GroupBy(QColumn column, params QColumn[] columns) { if (_jump) { _jump = false; return; } _groupBy.Add(column); foreach (var item in columns) { _groupBy.Add(item); } }
/// <summary> /// 是否存有组(@列=值) /// </summary> /// <param name="col">列</param> /// <param name="val">值</param> /// <returns></returns> public bool Exists(QColumn col, int val) { GroupM g = new GroupM(); g.Where(col == val); if (DEFINE_VALUE > 0) { g.And(g.R_PGID == DEFINE_VALUE); } return(g.NoLock().Exists()); }
public void GroupBy(string groupBy) { if (_jump) { _jump = false; return; } var column = new QColumn() { _columnType = Enums.ColumnType.Code, _code = groupBy }; _groupBy.Add(column); }
/// <summary> /// /// </summary> /// <param name="tables"></param> /// <param name="pk"></param> /// <param name="tableName"></param> /// <param name="fromtable"></param> /// <param name="jointables"></param> /// <param name="where"></param> /// <returns></returns> public override string Delete(List <QTable> tables, QColumn pk, string tableName, string fromtable, string jointables, string where) { return("DELETE t1 FROM " + fromtable + " " + jointables + " WHERE " + where); }
public CustomChildNode(QColumn column) : base(column.Name) { this.column = column; }
/// <summary> /// 执行SQL 查询,返回个数 /// </summary> /// <param name="distinctColumn"></param> /// <returns></returns> public int SelectCount(QColumn distinctColumn) { var column = (distinctColumn).ToSql(Provider, _tables.Count); return(getCount(column)); }
private void SelectInternal(Expression <Func <TDescriptor, object> > selector) { var propertyPath = selector.Body.ToString(); var indexOfFirstDot = propertyPath.IndexOf('.'); if (indexOfFirstDot > -1) { propertyPath = propertyPath.Substring(indexOfFirstDot + 1); } var properties = propertyPath.Split('.'); var currentEntity = _entity; var tableIndex = 0; var currentTableAlias = GetTableAlias(tableIndex); IList <QColumn> columns = new List <QColumn>(); var tableAliasDictionary = new Dictionary <string, string> { [currentEntity.StorageName] = currentTableAlias }; foreach (var property in properties) { if (!currentEntity.TryGetMember(property, out MetadataBase member)) { throw new EafException($"Cannot find member {property}"); } if (member is AttributeMetadata) { var attribute = (AttributeMetadata)member; var column = new QColumn { Properties = properties, Path = propertyPath, Alias = propertyPath.Replace('.', '_') }; columns.Add(column); _query.Select(GetColumnName(currentTableAlias, member.Name, column.Alias)); } else { var relatedTableAlias = GetTableAlias(++tableIndex); var relation = (RelationMetadata)member; currentEntity = relation.Entity; _query.CombineRaw($"LEFT JOIN {relation.Entity.StorageName} {relatedTableAlias} ON {currentTableAlias}.{relation.Attributes[0].Attribute.StorageName} = {relatedTableAlias}.{relation.Attributes[0].LinkedAttribute.StorageName}"); currentTableAlias = relatedTableAlias; } } var compiledQuery = new SqlKata.Compilers.SqlServerCompiler().Compile(_query); var accessor = TypeAccessor.Create(_entity.Type); using (var connection = _connection) { if (connection.State != ConnectionState.Open) { connection.Open(); } using (var command = connection.CreateCommand()) { command.CommandText = compiledQuery.RawSql; using (var reader = command.ExecuteReader()) { while (reader.Read()) { //var entity = //var cellDictionary = new Dictionary<string, object>(); var entity = Activator.CreateInstance <TEntity>(); foreach (var column in columns) { if (column.Properties.Count > 0) { foreach (var property in column.Properties) { } } //cellDictionary.Add(column.Alias, reader[column.Alias]); } } } } } }
//============= Get list of available columns of a table returned by a user defined function ===================// public List <QColumn> GetColumnsFromTableFunction(string table) { List <QColumn> columns = new List <QColumn>(); try { SqlCommand cmdSelect = new SqlCommand(); using (cmdSelect) { cmdSelect.CommandText = "SELECT name, xtype from sys.syscolumns " + "where id in (select id from sysobjects where " + "name = '" + table + "')" + "and number != 1"; cmdSelect.CommandType = CommandType.Text; cmdSelect.Connection = sqlConnection; cmdSelect.CommandTimeout = 180; } daColumnFunction.SelectCommand = cmdSelect; DataSet dsColumn = new DataSet(); daColumnFunction.Fill(dsColumn, "Columns"); DataTableReader dtReader = dsColumn.CreateDataReader(); while (dtReader.Read()) { string colname = dtReader.GetValue(0).ToString(); string xtype = dtReader.GetValue(1).ToString(); string datatype = ""; if (xtype == "48" || xtype == "52" || xtype == "56" || xtype == "59" || xtype == "60" || xtype == "62" || xtype == "104" || xtype == "106" || xtype == "108" || xtype == "122" || xtype == "127" || xtype == "173" || xtype == "56" ) { datatype = "decimal"; } else { datatype = "varchar"; } QColumn column = new QColumn(colname, datatype); columns.Add(column); } } catch (SqlException se) { Debug.WriteLine(se.ToString()); } catch (Exception e) { Debug.WriteLine(e.ToString()); } //UNCOMMENT THE CODE BELOW FOR USING CONNECTED LAYER //using (this.SqlConnection) //{ // Connect(); // using (SqlCommand cmd = new SqlCommand("SELECT name, xtype from sys.syscolumns " + // "where id in (select id from sysobjects where " + // "name = '" + table + "')" + // "and number != 1", this.SqlConnection)) // { // using (IDataReader dr = cmd.ExecuteReader()) // { // while (dr.Read()) // { // string colname = dr.GetValue(0).ToString(); // string xtype = dr.GetValue(1).ToString(); // string datatype = ""; // if (xtype == "48" // || xtype == "52" // || xtype == "56" // || xtype == "59" // || xtype == "60" // || xtype == "62" // || xtype == "104" // || xtype == "106" // || xtype == "108" // || xtype == "122" // || xtype == "127" // || xtype == "173" // || xtype == "56" // ) // { // datatype = "decimal"; // } // else // { // datatype = "varchar"; // } // QColumn column = new QColumn(colname, datatype); // columns.Add(column); // } // } // } //} //this.Close(); return(columns); }
//internal new QColumnBase leftColumn; //internal new QColumnBase rightColumn; internal QJoinCondition(QColumn column1, string op, QColumn column2) : base(column1, op, column2) { //leftColumn = column1; //rightColumn = column2; }
internal QColumnColumnCondition(QColumn column1, string op, QColumn column2) { leftColumn = column1; Op = op; rightColumn = column2; }
internal QColumnValueCondition(QColumn column1, string op) { leftColumn = column1; this.op = op; }
/// <summary> /// /// </summary> /// <param name="tables"></param> /// <param name="pk"></param> /// <param name="tableName"></param> /// <param name="fromtable"></param> /// <param name="jointables"></param> /// <param name="where"></param> /// <returns></returns> public override string Delete(List <QTable> tables, QColumn pk, string tableName, string fromtable, string jointables, string where) { //http://bbs.csdn.net/topics/340167958 return($"DELETE distinctrow t1.* FROM {fromtable} {jointables} WHERE {where};"); }
public Task <int> SelectCountAsync(QColumn distinctColumn) { var column = (distinctColumn).ToSql(Provider, _tables.Count); return(getCountAsync(column)); }
/// <summary> /// /// </summary> /// <param name="tables"></param> /// <param name="pk"></param> /// <param name="tableName"></param> /// <param name="fromtable"></param> /// <param name="jointables"></param> /// <param name="where"></param> /// <returns></returns> public override string Delete(List <QTable> tables, QColumn pk, string tableName, string fromtable, string jointables, string where) { return($"DELETE t1 FROM {fromtable} {jointables} WHERE {where};"); }
public OrderItem(QColumn column, OrderType orderType) { this.column = column; this.orderType = orderType; }