private void ReadStringField(int colIndex, ColumnMeta meta, DataRow dataRow, BinaryReader br)
{
if (m_dbreader is WDBReader)
dataRow.SetField(colIndex, br.ReadStringNull());
else if (m_dbreader is STLReader)
{
int offset = br.ReadInt32();
dataRow.SetField(colIndex, (m_dbreader as STLReader).ReadString(offset));
}
else
{
try
{
dataRow.SetField(colIndex, m_dbreader.IsSparseTable ? br.ReadStringNull() : m_dbreader.StringTable[br.ReadInt32(meta)]);
}
catch
{
dataRow.SetField(colIndex, "Invalid string index!");
}
}
}