Example #1
0
        public static string GetSql_QueryRecord(this CoreGenDescription desc)
        {
            Contract.Requires(desc != null);
            if (desc.SelectCommand == null)
            {
                throw new InvalidOperationException("no select command");
            }

            var sb = new StringBuilder();

            sb.Append("SELECT ");
            sb.Append(string.Join(", ",
                                  typeof(PerformanceRecord).GetProperties().Select(_ => _.Name)));
            sb.Append(" FROM ");
            sb.AppendLine(desc.GetSql_TableName());
            sb.Append("WHERE ");
            var pairs = new List <string>();

            foreach (var setcmd in desc.SetCommands)
            {
                pairs.Add(setcmd.AttrName + "=" + WrapSqlValue(setcmd.AttrValue, setcmd.CILType));
            }
            foreach (var csetcmd in desc.CSetCommands)
            {
                pairs.Add(csetcmd.AttrName + "=" + WrapSqlValue(csetcmd.AttrValue, csetcmd.CILType));
            }
            sb.AppendLine(string.Join(" AND ", pairs));
            sb.AppendLine(";");
            return(sb.ToString());
        }
Example #2
0
        public static string GetSql_CreateTable(this CoreGenDescription desc)
        {
            Contract.Requires(desc != null);
            if (desc.SelectCommand == null)
            {
                throw new InvalidOperationException("no select command");
            }

            var sb = new StringBuilder();

            sb.Append("CREATE TABLE IF NOT EXISTS ");
            sb.Append(desc.GetSql_TableName());
            sb.Append(" (");
            var primkeys = new List <string>();

            foreach (var setcmd in desc.SetCommands)
            {
                sb.Append(setcmd.AttrName);
                sb.Append(" ");
                string type = GetSqlTypeOfCoregenProp(setcmd.CILType);
                sb.Append(type);
                sb.AppendLine(" NOT NULL, ");
                primkeys.Add(setcmd.AttrName);
            }
            foreach (var csetcmd in desc.CSetCommands)
            {
                sb.Append(csetcmd.AttrName);
                sb.Append(" ");
                string type = GetSqlTypeOfCoregenProp(csetcmd.CILType);
                sb.Append(type);
                sb.AppendLine(" NOT NULL, ");
                primkeys.Add(csetcmd.AttrName);
            }
            var prprops = typeof(PerformanceRecord).GetProperties();

            foreach (var pi in prprops)
            {
                sb.Append(pi.Name);
                sb.Append(" ");
                sb.Append(GetSqlTypeOfCoregenProp(pi.PropertyType));
                sb.AppendLine(", ");
            }
            sb.Append("PRIMARY KEY (");
            sb.Append(string.Join(", ", primkeys));
            sb.Append(")");
            sb.AppendLine(");");
            return(sb.ToString());
        }
Example #3
0
        public static string GetSql_InsertRecord(this CoreGenDescription desc, PerformanceRecord prec)
        {
            Contract.Requires(desc != null);
            Contract.Requires(prec != null);
            if (desc.SelectCommand == null)
            {
                throw new InvalidOperationException("no select command");
            }

            var sb = new StringBuilder();

            sb.Append("INSERT INTO ");
            sb.Append(desc.GetSql_TableName());
            var keys   = new List <string>();
            var values = new List <string>();

            foreach (var setcmd in desc.SetCommands)
            {
                keys.Add(setcmd.AttrName);
                values.Add(WrapSqlValue(setcmd.AttrValue, setcmd.CILType));
            }
            foreach (var csetcmd in desc.CSetCommands)
            {
                keys.Add(csetcmd.AttrName);
                values.Add(WrapSqlValue(csetcmd.AttrValue, csetcmd.CILType));
            }
            var prprops = typeof(PerformanceRecord).GetProperties();

            foreach (var pi in prprops)
            {
                keys.Add(pi.Name);
                values.Add(WrapSqlValue(pi.GetValue(prec, new object[0])));
            }
            sb.Append(" (");
            sb.Append(string.Join(", ", keys));
            sb.Append(") VALUES(");
            sb.Append(string.Join(", ", values));
            sb.AppendLine(");");
            return(sb.ToString());
        }