Beispiel #1
0
 public void AutoMapProps(int cmd_bit)
 {
     foreach (var pair in _dynaRecord.FieldDict)
     {
         IDynaField field = pair.Value;
         if ((field.GetOutMask() & cmd_bit) > 0)
         {
             MapToCurrent(pair.Key, pair.Key);
         }
     }
 }
Beispiel #2
0
 public override bool TryGetMember(GetMemberBinder binder, out object result)
 {
     result = null;
     try
     {
         IDynaField field = _record.FieldDict[binder.Name];
         result = field.GetData(_reader);
     }
     catch (Exception)
     {
     }
     return(true);
 }
Beispiel #3
0
        public void CreateField(FldDef fldDef)
        {
            IDynaField field = null;

            switch (fldDef.fld_type)
            {
            case 167:     //varchar
                field = new StringField(fldDef.fld_name, DbType.String, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 175:     //char[]->varchar
                field = new StringField(fldDef.fld_name, DbType.StringFixedLength, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 35:     //text
                field = new TextField(fldDef.fld_name, DbType.AnsiString, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 48:     //byte
                field = new ByteField(fldDef.fld_name, DbType.Byte, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 52:     //int16
                field = new Int16Field(fldDef.fld_name, DbType.Int16, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 56:     //int32
                field = new Int32Field(fldDef.fld_name, DbType.Int32, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 40:     //date
                field = new DateField(fldDef.fld_name, DbType.Date, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 61:     //datetime
                field = new DateField(fldDef.fld_name, DbType.DateTime, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;

            case 62:     //double
                field = new DoubleField(fldDef.fld_name, DbType.Double, fldDef.fld_size, fldDef.inp_mask, fldDef.out_mask);
                break;
            }
            if (field != null)
            {
                field.Value = fldDef.def_val;
                FieldDict.Add(fldDef.fld_name, field);
            }
        }
Beispiel #4
0
        public void MapToCurrent(string fieldName, string propName)
        {
            PropertyInfo info = _type.GetProperty(propName);

            if (info == null || !_dynaRecord.FieldDict.ContainsKey(fieldName))
            {
                return;
            }
            IDynaField field = _dynaRecord.FieldDict[fieldName];

            if (field.GetPropType() != info.PropertyType)
            {
                return;
            }
            propMaps.Add(new PropMap(field)
            {
                GetMethod = info.GetGetMethod(),
                SetMethod = info.GetSetMethod()
            });
        }
Beispiel #5
0
 public PropMap(IDynaField field)
 {
     dynaField  = field;
     parameters = new object[1];
 }