public static ColumnInfo FromType(Type type) { return(new ColumnInfo() { DataType = type, ColumnSize = MdbTypeMap.GetTypeInfo(type).Size, AllowDBNull = true }); }
public static ColumnInfo FromValue(object value) { ColumnInfo c = new ColumnInfo(); MdbTypeInfo info = MdbTypeMap.GetTypeInfo(value.GetType()); c.DataType = info.Type; c.ColumnSize = info.Size; c.AllowDBNull = info.NullIfEmpty; return(c); }
// например ColumnInfo FromName("Field1.int.4.0") public static ColumnInfo FromName(string columnInfo) { string[] cInfo = (columnInfo + "....").Split('.'); string typeName = cInfo[1].IsEmpty() ? "string" : cInfo[1].ToLower(); Type t = MdbTypeMap.GetType(typeName, typeof(string)); return(new ColumnInfo() { DataType = t, ColumnSize = cInfo[2].IsEmpty() ? MdbTypeMap.GetTypeInfo(t).Size : cInfo[2].ToIntOrDefault(), AllowDBNull = cInfo[3].ToBoolOrDefault() }); }
protected override void ToJsonRaw(JsonWriter writer) { writer.WriteProperty("HeaderSize", _headerSpaceSize); #region Heders writer.WritePropertyName("Headers"); writer.WriteStartObject(); foreach (var kvp in _headers) { writer.WriteProperty(kvp.Key, kvp.Value); } writer.WriteEndObject(); #endregion Heders #region Columns writer.WritePropertyName("Columns"); writer.WriteStartArray(); for (int i = 0; i < _indexes.Length; i++) { ColumnInfo ci = _colInfo[i]; writer.WriteStartObject(); writer.WritePropertyName("Name"); writer.WriteValue(_indexes[i]); writer.WritePropertyName("Type"); writer.WriteValue(MdbTypeMap.GetTypeInfo(ci.DataType).Name); writer.WritePropertyName("Size"); writer.WriteValue(ci.ColumnSize); writer.WritePropertyName("AllowNull"); writer.WriteValue(ci.AllowDBNull); writer.WriteEndObject(); } writer.WriteEndArray(); #endregion Columns #region Data writer.WritePropertyName("Rows"); GoDataTop(); writer.WriteStartArray(); for (; Read();) { WriteRowJson(writer); } writer.WriteEndArray(); #endregion Data }
private void WritePackageHeader(byte[] headersAsByteArray = null, int bytesToWrite = 0) { //Write sizes _bw.Position = 0; _bw.Write(_headerSpaceSize); _bw.Write(_colCount); //Write Headers if (headersAsByteArray == null) { _bw.Write(_headers); } else { _bw.WriteBlock(headersAsByteArray, bytesToWrite); } int len = header_pos + _headerSpaceSize - _bw.Position; if (len < 0) { int p = _bw.Position; //if _headerSpaceSize less then sizeof _headers _headerSpaceSize = p; len = header_pos + _headerSpaceSize - p; //write new _headerSpaceSize _bw.Position = 0; _bw.Write(_headerSpaceSize); _bw.Position = p; } _bw.WriteSpace(len); //Write ColInfo for (int i = 0; i < _colCount; i++) { var ci = _colInfo[i]; _bw.Write(_indexes[i]); _bw.Write((byte)MdbTypeMap.GetTypeInfo(ci.DataType).MdbType); _bw.Write(ci.ColumnSize); _bw.Write(ci.AllowDBNull); } _dataPos = _bw.Position; }
public string GetDataTypeName(int i) => MdbTypeMap.GetTypeInfo(_colInfo[i].DataType).Name;