File: fx\src\data\System\Data\Common\dbdatarecord.cs
Project: ndp\System.Data.csproj (System.Data)
//------------------------------------------------------------------------------
// <copyright file="DbDataRecord.cs" company="Microsoft">
//      Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
// <owner current="true" primary="true">Microsoft</owner>
// <owner current="true" primary="false">Microsoft</owner>
//------------------------------------------------------------------------------
 
namespace System.Data.Common {
 
    using System.ComponentModel;
 
    public abstract class DbDataRecord : ICustomTypeDescriptor, IDataRecord {
 
        protected DbDataRecord() : base() {
        }
 
        public abstract int FieldCount {
            get;
        }
 
        public abstract object this[int i] {
            get;
        }
 
        public abstract object this[string name] {
            get;
        }
 
        public abstract bool GetBoolean(int i);
 
        public abstract byte GetByte(int i);
 
        public abstract long GetBytes(int i, long dataIndex, byte[] buffer, int bufferIndex, int length);
 
        public abstract char GetChar(int i);
 
        public abstract long GetChars(int i, long dataIndex, char[] buffer, int bufferIndex, int length);
 
        public IDataReader GetData(int i) {
            return GetDbDataReader(i);
        }
 
        virtual protected DbDataReader GetDbDataReader(int i) {
            // NOTE: This method is virtual because we're required to implement
            //       it however most providers won't support it. Only the OLE DB 
            //       provider supports it right now, and they can override it.
            throw ADP.NotSupported();
        }
 
        public abstract string GetDataTypeName(int i);
 
        public abstract DateTime GetDateTime(int i);
 
        public abstract Decimal GetDecimal(int i);
 
        public abstract double GetDouble(int i);
 
        public abstract Type GetFieldType(int i);
 
        public abstract float GetFloat(int i);
 
        public abstract Guid GetGuid(int i);
 
        public abstract Int16 GetInt16(int i);
 
        public abstract Int32 GetInt32(int i);
 
        public abstract Int64 GetInt64(int i);
 
        public abstract string GetName(int i);
 
        public abstract int GetOrdinal(string name);
 
        public abstract string GetString(int i);
 
        public abstract object GetValue(int i);
 
        public abstract int GetValues(object[] values);
 
        public abstract bool IsDBNull(int i);
 
        //
        // ICustomTypeDescriptor
        //
 
        AttributeCollection ICustomTypeDescriptor.GetAttributes() {
            return new AttributeCollection((Attribute[])null);
 
        }
 
        string ICustomTypeDescriptor.GetClassName() {
            return null;
        }
 
        string ICustomTypeDescriptor.GetComponentName() {
            return null;
        }
 
        TypeConverter ICustomTypeDescriptor.GetConverter() {
            return null;
        }
 
        EventDescriptor ICustomTypeDescriptor.GetDefaultEvent() {
            return null;
        }
 
 
        PropertyDescriptor ICustomTypeDescriptor.GetDefaultProperty() {
            return null;
        }
 
        object ICustomTypeDescriptor.GetEditor(Type editorBaseType) {
            return null;
        }
 
        EventDescriptorCollection ICustomTypeDescriptor.GetEvents() {
            return new EventDescriptorCollection(null);
        }
 
        EventDescriptorCollection ICustomTypeDescriptor.GetEvents(Attribute[] attributes) {
            return new EventDescriptorCollection(null);
        }
 
        PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties() {
            return((ICustomTypeDescriptor)this).GetProperties(null);
        }
 
        PropertyDescriptorCollection ICustomTypeDescriptor.GetProperties(Attribute[] attributes) {
            return new PropertyDescriptorCollection(null);
        }
 
        object ICustomTypeDescriptor.GetPropertyOwner(PropertyDescriptor pd) {
            return this;
        }
    }
}