private static SchemaInfo[] LoadSchema(IDataReader reader)
        {
            int fieldCount = reader.FieldCount;
            var schema = new SchemaInfo[fieldCount];

            for (int i = 0; i < fieldCount; i++)
            {
                var columnSchema = new SchemaInfo();

                columnSchema.ColumnName = reader.GetName(i);
                columnSchema.ColumnOrdinal = i;
                columnSchema.DataTypeName = reader.GetDataTypeName(i);
                columnSchema.FieldType = reader.GetFieldType(i);

                schema[i] = columnSchema;
            }

            return schema;
        }
 // FIXME: this class should actually be reimplemented to be one
 // of the derived classes of DbDataRecord, which should become
 // almost abstract.
 internal DbDataRecordImpl(SchemaInfo[] schema, object[] values)
 {
     this.schema = schema;
     this.values = values;
     this.fieldCount = values.Length;
 }