protected new void AppendValues( [NotNull] StringBuilder commandStringBuilder, [NotNull] IReadOnlyList <ColumnModification> operations) { Check.NotNull(commandStringBuilder, nameof(commandStringBuilder)); Check.NotNull(operations, nameof(operations)); if (operations.Count > 0) { commandStringBuilder .Append("(") .AppendJoin( operations, SqlGenerationHelper, (sb, o, helper) => { if (o.IsWrite) { FirebirdSqlSqlGenerationHelper.GenerateValue(sb, o); } else { sb.Append("DEFAULT VALUES"); } }) .Append(")"); } }
public ResultSetMapping AppendBlockUpdateOperation(StringBuilder commandStringBuilder, IReadOnlyList <ModificationCommand> modificationCommands, int commandPosition) { Check.NotNull(commandStringBuilder, nameof(commandStringBuilder)); Check.NotEmpty(modificationCommands, nameof(modificationCommands)); var name = modificationCommands[0].TableName; var schema = modificationCommands[0].Schema; commandStringBuilder.AppendLine($"regAffeted=0;"); for (var i = 0; i < modificationCommands.Count; i++) { var operations = modificationCommands[i].ColumnModifications; var writeOperations = operations.Where(o => o.IsWrite).ToArray(); var readOperations = operations.Where(o => o.IsRead).ToArray(); commandStringBuilder.Append($"UPDATE {SqlGenerationHelper.DelimitIdentifier(name)} SET ") .AppendJoinUpadate( writeOperations, SqlGenerationHelper, (sb, o, helper) => { if (o.IsWrite) { sb.Append($"{SqlGenerationHelper.DelimitIdentifier(o.ColumnName)}={FirebirdSqlSqlGenerationHelper.GenerateValue(o)}"); } }); commandStringBuilder.AppendLine($" WHERE {SqlGenerationHelper.DelimitIdentifier(operations.First().ColumnName)}={operations[0].Value}; "); AppendUpdateOutputClause(commandStringBuilder); } commandStringBuilder.AppendLine("SUSPEND;"); commandStringBuilder.AppendLine("END;"); return(ResultSetMapping.NotLastInResultSet); }