All pastes #192154 Raw Edit

Mine

public text v1 · immutable
·published 2006-10-05 18:42 UTC
rendered paste body
   public class GenerateSQL
    {
        /// <summary>
        /// Generates the specified object.
        /// </summary>
        /// <param name="Object">The object.</param>
        /// <returns></returns>
        public static string Generate(object Object)
        {   
            StringBuilder objBuilder = new StringBuilder();
            StringBuilder objBuilder2 = new StringBuilder();
            Type type = Object.GetType();// Get object type
            object[] obj = type.GetCustomAttributes(true);
            for (int i = 0; i < obj.Length; i++)
            {
                if (obj[i] is Attributes.Table)
                {
                    objBuilder.Append("CREATE TABLE " + ((Technique.Framework.Sql.Attributes.Table)(obj[i])).Name + " ( ");
                }

            }
            Type type2 = Object.GetType();
            PropertyInfo[] objPropertyInfo = type2.GetProperties();
            for (int iCount = 0; iCount < objPropertyInfo.Length; iCount++)
            {
                object[] obj2 = objPropertyInfo[iCount].GetCustomAttributes(true);
                for (int ii = 0; ii < obj2.Length; ii++)
                {
                    if (obj2[ii] is Attributes.Identity)
                    {
                        objBuilder.Append(((Technique.Framework.Sql.Attributes.Identity)(obj2[ii])).Column + " int identity,");
                        objBuilder2.Append("Primary Key" + " (" + ((Technique.Framework.Sql.Attributes.Identity)(obj2[ii])).Column + ")");
                    }
                    if (obj2[ii] is Attributes.Field)
                    {
                        if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType == System.Data.SqlDbType.Bit)
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + ",");
                        }
                        else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType == System.Data.SqlDbType.DateTime)
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + ",");
                        }
                        else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == false && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == false)
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ") NOT NULL,");
                        }
                        else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == true && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == false)
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ")Unique NOT NULL,");
                        }
                        else if (((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Unique == true && ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).AllowNull == true)
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + ")Unique,");
                        }
                        else
                        {
                            objBuilder.Append(((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Column + " " + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).DataType + "(" + ((Technique.Framework.Sql.Attributes.Field)(obj2[ii])).Lenght + "),");
                        }
                    }
                }
            }
            objBuilder2.Append(")");
            string strSql = objBuilder.ToString() + objBuilder2.ToString();
            return strSql;
        }
    }