internal static JET_coltyp ColtypFromColumnDefinition()

in isam/DatabaseCommon.cs [190:266]


        internal static JET_coltyp ColtypFromColumnDefinition(ColumnDefinition columnDefinition)
        {
            if (columnDefinition.Type == typeof(bool))
            {
                return JET_coltyp.Bit;
            }
            else if (columnDefinition.Type == typeof(byte))
            {
                return JET_coltyp.UnsignedByte;
            }
            else if (columnDefinition.Type == typeof(char))
            {
                return VistaColtyp.UnsignedShort;
            }
            else if (columnDefinition.Type == typeof(System.DateTime))
            {
                return JET_coltyp.DateTime;
            }
            else if (columnDefinition.Type == typeof(double))
            {
                return JET_coltyp.IEEEDouble;
            }
            else if (columnDefinition.Type == typeof(short))
            {
                return JET_coltyp.Short;
            }
            else if (columnDefinition.Type == typeof(int))
            {
                return JET_coltyp.Long;
            }
            else if (columnDefinition.Type == typeof(long))
            {
                return VistaColtyp.LongLong;
            }
            else if (columnDefinition.Type == typeof(float))
            {
                return JET_coltyp.IEEESingle;
            }
            else if (columnDefinition.Type == typeof(string))
            {
                if (columnDefinition.MaxLength > 0 && columnDefinition.MaxLength <= 255)
                {
                    return JET_coltyp.Text;
                }
                else
                {
                    return JET_coltyp.LongText;
                }
            }
            else if (columnDefinition.Type == typeof(ushort))
            {
                return VistaColtyp.UnsignedShort;
            }
            else if (columnDefinition.Type == typeof(uint))
            {
                return VistaColtyp.UnsignedLong;
            }
            else if (columnDefinition.Type == typeof(byte[]))
            {
                if (columnDefinition.MaxLength > 0 && columnDefinition.MaxLength <= 255)
                {
                    return JET_coltyp.Binary;
                }
                else
                {
                    return JET_coltyp.LongBinary;
                }
            }
            else if (columnDefinition.Type == typeof(System.Guid))
            {
                return VistaColtyp.GUID;
            }
            else
            {
                throw new ArgumentException("Cannot map this type to a native column type");
            }
        }