Пример #1
0
        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));
        }
        protected override void ApplyTypeRestrictions(CdlValueHolder holder, DbTypeBase type)
        {
            base.ApplyTypeRestrictions(holder, type);

            var dtt = type as DbTypeDatetime;
            if (dtt != null)
            {
                if (!dtt.ExtendedPrecision)
                {
                    var htype = holder.GetFieldType();
                    if (htype.IsDateRelated())
                    {
                        var dt = holder.GetDateTimeValue();
                        dt.Nanosecond = dt.Nanosecond/1000000*1000000;
                        switch (htype)
                        {
                            case TypeStorage.DateEx:
                                holder.SetDateEx(dt.DatePart);
                                break;
                            case TypeStorage.TimeEx:
                                holder.SetTimeEx(dt.TimePart);
                                break;
                            case TypeStorage.DateTimeEx:
                                holder.SetDateTimeEx(dt);
                                break;
                            case TypeStorage.DateTime:
                                holder.SetDateTime(dt.AsDateTime);
                                break;
                        }
                    }
                }
            }
        }
Пример #3
0
        public void SetValue(int colindex, ICdlValueReader reader)
        {
            var holder = new CdlValueHolder();

            m_table.CdlConvertor.ConvertValue(reader, GetDefaultStorage(colindex), holder);
            m_fields[colindex].Value   = holder.GetValue();
            m_fields[colindex].Changed = true;
            if (RowState == CdlRowState.Unchanged)
            {
                RowState = CdlRowState.Modified;
            }
        }
Пример #4
0
 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(),
                     }
             });
     }
 }
Пример #5
0
        protected virtual void ApplyTypeRestrictions(CdlValueHolder holder, DbTypeBase type)
        {
            var stype = type as DbTypeString;
            var htype = holder.GetFieldType();
            if (stype != null && htype == TypeStorage.String)
            {
                string sval = holder.GetString();
                if (stype.Length > 0 && sval.Length > stype.Length)
                {
                    sval = sval.Substring(0, stype.Length);
                    holder.SetString(sval);
                }
            }
            if (htype.IsDateRelated() && !m_allowZeroInDate)
            {
                var dt = holder.GetDateTimeValue();

                if (dt.MakeValidDate())
                {
                    m_holder.SetDateTimeEx(dt);
                }
            }
        }
Пример #6
0
 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);
     }
 }
Пример #7
0
 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);
 }
Пример #8
0
 public void SetValue(int colindex, ICdlValueReader reader)
 {
     var holder = new CdlValueHolder();
     m_table.CdlConvertor.ConvertValue(reader, GetDefaultStorage(colindex), holder);
     m_fields[colindex].Value = holder.GetValue();
     m_fields[colindex].Changed = true;
     if (RowState == CdlRowState.Unchanged) RowState = CdlRowState.Modified;
 }
Пример #9
0
 public CdlRecordAdapter()
 {
     m_convertor = new CdlValueConvertor(new DataFormatSettings());
     m_value = new CdlValueHolder();
 }
Пример #10
0
 public CdlRecordAdapter()
 {
     m_convertor = new CdlValueConvertor(new DataFormatSettings());
     m_value     = new CdlValueHolder();
 }
Пример #11
0
 protected virtual void ConvertNotNullValue(ICdlValueReader reader, DbTypeBase type, CdlValueHolder valueHolder, ICdlValueConvertor converter)
 {
     converter.ConvertValue(reader, type.DefaultStorage, valueHolder);
 }