Exemple #1
0
        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(")");
            }
        }
Exemple #2
0
        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);
        }