Type GetFieldType (int i)
{
TdsDataColumn column;
TdsColumnType ctype;
int csize;
short precision;
short scale;
ValidateState ();
if (i < 0 || i >= command.Tds.Columns.Count)
throw new IndexOutOfRangeException ();
column = command.Tds.Columns [i];
#if NET_2_0
ctype = (TdsColumnType) column.ColumnType;
csize = (int) column.ColumnSize;
precision = (short) (column.NumericPrecision ?? 0);
scale = (short) (column.NumericScale ?? 0);
#else
ctype = (TdsColumnType) column ["ColumnType"];
csize = (int) column ["ColumnSize"];
precision = (short) ((byte) column ["NumericPrecision"]);
scale = (short) ((byte) column ["NumericScale"]);
#endif
return GetSchemaRowFieldType (ctype, csize, precision,
scale);
}