Exemplo n.º 1
0
        public override string ToSql(ExpressionSqlBuilder builder)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("insert into ").Append(TableClause.ToSql(builder));
            if (DefaultValues)
            {
                sb.Append(" DEFAULT VALUES");
                AddReturningToSql1(builder, sb);
            }
            else
            {
                if (ColumnOfValues.Count > 0)
                {
                    sb.Append(" ( ");
                    for (int i = 0; i < ColumnOfValues.Count; i++)
                    {
                        var sc = ColumnOfValues[i];
                        if (i > 0)
                        {
                            sb.Append(", ");
                        }

                        if (!(sc is FieldExpr))
                        {
                            throw new Exception("В перечне колонок INSERT INTO () должны быть простые имена колонок");
                        }
                        FieldExpr fe = sc as FieldExpr;
                        sb.Append(fe.ToSqlShort(builder));
                    }
                    sb.Append(")");
                }
                AddReturningToSql1(builder, sb);
                if (Values != null && Values.Count > 0)
                {
                    sb.Append(" values");
                    for (int i = 0; i < Values.Count; i++)
                    {
                        var sc = Values[i];
                        if (i > 0)
                        {
                            sb.Append(", ");
                        }
                        sb.Append(sc.ToSql(builder));
                    }
                }
                else
                {
                    sb.Append(" ").Append(Select.ToSql(builder));
                }
            }
            AddReturningToSql2(builder, sb);
            return(sb.ToString());
        }
Exemplo n.º 2
0
        public override string ToSql(ExpressionSqlBuilder builder)
        {
            if (!(Column is FieldExpr))
            {
                throw new Exception("В \"update set xxx = \" должны быть простые имена колонок");
            }

            FieldExpr fe = Column as FieldExpr;

            return(fe.ToSqlShort(builder) + " = " + Value.ToSql(builder));
        }