public void Write <R>(IDataOutput <R> o) where R : IDataOutput <R> { int count = reader.FieldCount; for (int i = 0; i < count; i++) { string name = reader.GetName(i); uint oid = reader.GetDataTypeOID(i); if (reader.IsDBNull(i)) { o.PutNull(name); continue; } if (oid == 1043 || oid == 1042) { o.Put(name, reader.GetString(i)); } else if (oid == 790) // money { o.Put(name, reader.GetDecimal(i)); } } }