automatically guess data type when writing value

This commit is contained in:
Michael Becker 2019-11-18 23:55:14 -05:00
parent 60a19673cb
commit baeabf312d
No known key found for this signature in database
GPG Key ID: 389DFF5D73781A12

View File

@ -488,7 +488,7 @@ namespace UniversalEditor.Plugins.CRI.DataFormats.Database.UTF
{
if (columnStorageTypes[j] == UTFColumnStorageType.PerRow)
{
WriteValue(bw, dt.Records[i].Fields[j].Value, columnDataTypes[j], stringTable);
WriteValue(bw, dt.Records[i].Fields[j].Value, stringTable);
}
}
}
@ -535,6 +535,38 @@ namespace UniversalEditor.Plugins.CRI.DataFormats.Database.UTF
throw new NotImplementedException();
}
private void WriteValue(Writer bw, object value, List<string> stringTable)
{
if (value is string)
{
WriteValue(bw, value, UTFColumnDataType.String, stringTable);
}
else if (value is byte[])
{
WriteValue(bw, value, UTFColumnDataType.Data, stringTable);
}
else if (value is long || value is ulong)
{
WriteValue(bw, value, UTFColumnDataType.Long, stringTable);
}
else if (value is int || value is uint)
{
WriteValue(bw, value, UTFColumnDataType.Int, stringTable);
}
else if (value is short || value is short)
{
WriteValue(bw, value, UTFColumnDataType.Short, stringTable);
}
else if (value is byte || value is byte)
{
WriteValue(bw, value, UTFColumnDataType.Byte, stringTable);
}
else if (value is float)
{
WriteValue(bw, value, UTFColumnDataType.Float, stringTable);
}
}
private void WriteValue(Writer bw, object value, UTFColumnDataType columnDataType, List<string> stringTable)
{
switch (columnDataType)