void IColumnMapping.ProcessMapping(int column, int rowNumber, ICdlRecord record, ICdlValueWriter writer, IShellContext context) { if (_value == null) { _value = new CdlValueHolder(); } if (Expression != null && Value != null) { throw new Exception("DBSH-00004 MapValue: Both Expression and Value is set"); } var childContext = context.CreateChildContext(); if (Value != null) { CreateColumnValues(record, childContext); string value = childContext.Replace(Value); _value.ReadFrom(value); _value.WriteTo(writer); } if (Expression != null) { CreateColumnValues(record, childContext); object value = childContext.Evaluate(Expression); _value.ReadFrom(value); _value.WriteTo(writer); } if (Expression == null && Value == null) { _value.SetNull(); _value.WriteTo(writer); } }
public static bool GetValueAsXml(object value, ref string xtype, ref string xdata) { var holder = new CdlValueHolder(); holder.ReadFrom(value); return(GetValueAsXml(holder, ref xtype, ref xdata)); }
private CdlValueHolder WantValue() { if (!_loadedValue) { _workingHolder.ReadFrom(_values[_curReadField]); _loadedValue = true; } return(_workingHolder); }
public object ConvertValue(TypeStorage type, object value) { m_holder1.ReadFrom(value); var srctype = m_holder1.GetFieldType(); if (srctype == type || srctype == TypeStorage.Null) { return(value); } ConvertValue(m_holder1, type, m_holder2); return(m_holder2.BoxTypedValue()); }
protected static void GetValues(DmlfUpdateFieldCollection fields, List <ChangeSetValue> values, TableInfo table, IDialectDataAdapter dda, ICdlValueConvertor converter) { var input = new CdlValueHolder(); var output = new CdlValueHolder(); foreach (var col in values) { var colinfo = table.FindColumn(col.Column); if (colinfo == null) { continue; } input.ReadFrom(col.Value); dda.AdaptValue(input, colinfo.CommonType, output, converter); fields.Add(new DmlfUpdateField { TargetColumn = colinfo.Name, Expr = new DmlfLiteralExpression { Value = output.GetValue(), } }); } }
public string GetSqlLiteral(object value, DbTypeBase type) { m_holder.ReadFrom(value); return GetSqlLiteral(m_holder, type); }