Deveel.Data.Sql.Statements.InsertStatement.AppendTo C# (CSharp) Method

AppendTo() protected method

protected AppendTo ( SqlStringBuilder builder ) : void
builder SqlStringBuilder
return void
        protected override void AppendTo(SqlStringBuilder builder)
        {
            builder.Append("INSERT INTO ");
            builder.Append(TableName);

            if (ColumnNames != null &&
                ColumnNames.Length > 0) {
                builder.Append("(");
                builder.Append(String.Join(", ", ColumnNames));
                builder.Append(")");
            }

            var values = Values.ToList();
            if (values.Count > 1) {
                builder.AppendLine();

                builder.Indent();
                builder.AppendLine("VALUES");

                for (int i = 0; i < values.Count; i++) {
                    var set = values[i];

                    builder.Append("(");

                    for (int j = 0; j < set.Length; j++) {
                        builder.Append(set[j]);

                        if (j < set.Length - 1)
                            builder.Append(", ");
                    }

                    builder.Append(")");

                    if (i < values.Count - 1) {
                        builder.AppendLine(",");
                    }
                }
            } else {
                builder.Append(" VALUES ");
                var set = values[0];

                builder.Append("(");
                for (int i = 0; i < set.Length; i++) {
                    builder.Append(set[i]);

                    if (i < set.Length - 1)
                        builder.Append(", ");
                }
                builder.Append(")");
            }
        }