Ejemplo n.º 1
0
 /// <summary>
 /// Creates a new SET expression.
 /// </summary>
 /// <param name="expressionType">Expression type.</param>
 /// <param name="column">Column which is to be changed.</param>
 /// <param name="sourceColumns">Columns required by the expression to compute the new value.
 /// Required to properly render the FROM clause when columns from other tables are used. 
 /// <b>Null</b> if the expression doesn't use any columns.</param>
 /// <param name="item">SQL item that computes/contains the new value.</param>
 /// <param name="itemType">Item type.</param>
 internal UpdateExpression(UpdateExpressionType expressionType, IDbColumn column, DbColumnCollection sourceColumns, object item, SqlItemType itemType)
     : this(item, itemType)
 {
     this.ExpressionType = expressionType;
     this.column = column;
     if (sourceColumns == null || sourceColumns.Count == 0)
         this.sourceColumns = new IDbColumn[0];
     else
         this.sourceColumns = sourceColumns.ToArray();
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Creates a new predicate item.
 /// </summary>
 /// <param name="item">Item.</param>
 /// <param name="itemType">Item type.</param>
 internal PredicateItem(object item, SqlItemType itemType)
 {
     switch (itemType)
     {
         case SqlItemType.Column:
             InitColumn((IDbColumn)item);
             break;
         case SqlItemType.FreeText:
             InitFreeText((string)item);
             break;
         case SqlItemType.Function:
             InitFunction((Function)item);
             break;
         case SqlItemType.Parameter:
             DbParameter par = (DbParameter)item;
             InitParameter(par.Value, par.DbType, par.Size, par.ParameterName);
             break;
         case SqlItemType.SubQuery:
             InitQuery((SelectStatement)item);
             break;
     }
 }
Ejemplo n.º 3
0
 private UpdateExpression(object item, SqlItemType itemType)
     : this()
 {
     this.Item = item;
     this.ItemType = itemType;
 }
Ejemplo n.º 4
0
 private void InitColumn(IDbColumn column)
 {
     this.item = column;
     this.itemType = SqlItemType.Column;
     this.dataType = column.DataType;
     this.dbType = column.DbType;
     this.alias = column.Alias;
 }
Ejemplo n.º 5
0
 private void InitQuery(SelectStatement query)
 {
     this.item = query;
     this.itemType = SqlItemType.SubQuery;
     SqlItemUtil.TryDetermineSubQueryDataType(query, out this.dataType, out this.dbType);
     this.alias = query.Alias;
 }
Ejemplo n.º 6
0
        private void InitParameter(object parameterValue, DbType parameterType, int size, string parameterNamePrefix)
        {
            // Unique parameter ID is automatically appended to parameter name during the rendering phase.
            // Eg: 'parameter_15'. This is a safety precaution. It is possible that there are more
            // parameters with the same name.

            DbParameter dbpar = new DbParameter();
            dbpar.ParameterName = SqlItemUtil.CleanParameterName(parameterNamePrefix);
            dbpar.Direction = ParameterDirection.Input;
            dbpar.DbType = parameterType;
            dbpar.Value = parameterValue;
            if (size > 0)
                dbpar.Size = size;

            this.item = dbpar;
            this.itemType = SqlItemType.Parameter;
            this.dataType = DBTypeUtil.NetTypeFrom(parameterType);
            this.dbType = parameterType;
        }
Ejemplo n.º 7
0
 private void InitFunction(Function function)
 {
     this.item = function;
     this.itemType = SqlItemType.Function;
     this.dataType = function.DataType;
     this.dbType = function.DbType;
     this.alias = function.Alias;
 }
Ejemplo n.º 8
0
 private void InitFreeText(string freeText)
 {
     this.item = freeText;
     this.itemType = SqlItemType.FreeText;
 }