示例#1
0
        public static string mysql_field_flags(PhpResource resultHandle, int fieldIndex)
        {
            var result = MySqlResultResource.ValidResult(resultHandle);

            if (result == null || !result.CheckFieldIndex(fieldIndex))
            {
                return(null);
            }

            var col = result.GetColumnSchema(fieldIndex);
            //ColumnFlags flags = result.GetFieldFlags(fieldIndex);

            var flags = new ValueList <string>();

            if (col.AllowDBNull.GetValueOrDefault() == false)
            {
                flags.Add("not_null");
            }

            if (col.IsKey.GetValueOrDefault())
            {
                flags.Add("primary_key");
            }

            if (col.IsUnique.GetValueOrDefault())
            {
                flags.Add("unique_key");
            }

            //if ((flags & ColumnFlags.MULTIPLE_KEY) != 0)
            //    flags.Add("multiple_key");

            if (col.IsBlob())
            {
                flags.Add("blob");
            }

            if (col.IsUnsigned())
            {
                flags.Add("unsigned");
            }

            //if ((flags & ColumnFlags.ZERO_FILL) != 0)
            //    flags.Add("zerofill");

            if (col.ProviderType == MySqlDbType.Binary || col.ProviderType == MySqlDbType.VarBinary)
            {
                flags.Add("binary");
            }

            if (col.ProviderType == MySqlDbType.Enum)
            {
                flags.Add("enum");
            }

            if (col.ProviderType == MySqlDbType.Set)
            {
                flags.Add("set");
            }

            if (col.IsAutoIncrement.GetValueOrDefault())
            {
                flags.Add("auto_increment");
            }

            if (col.ProviderType == MySqlDbType.Timestamp)
            {
                flags.Add("timestamp");
            }

            //
            return(flags.Join(" "));
        }