/// <summary> /// Renders each of the given elements into a single statement. This can be used to execute a batch. /// </summary> /// <param name="elements"></param> /// <returns></returns> public static SqlStatementBatch RenderBatch(this IEnumerable <ISqlStatementElement> elements) { var writer = new SqlTextWriter(); var args = new SqlBuildArguments(); int count = 0; foreach (var element in elements) { count++; element.Render(writer, args); writer.WriteEndStatement(); writer.WriteLine(); } return(new SqlStatementBatch(count, writer.ToString(), args.Parameters)); }
/// <summary> /// Renders the query. /// </summary> /// <param name="supressEndStatement">True if you want to supress statement terminating characters (semicolon)</param> /// <returns></returns> public SqlStatement Render(bool supressEndStatement) { var writer = new SqlTextWriter() { Format = this.GenerateFormattedSql }; var args = new SqlBuildArguments(); this.CompileInternal(args); if (this.Prefix != null) { writer.Write(this.Prefix); if (!supressEndStatement) { writer.WriteEndStatement(); } } this.RenderInternal(writer, args); if (!supressEndStatement) { writer.WriteEndStatement(); } if (this.Suffix != null) { writer.Write(this.Suffix); if (!supressEndStatement) { writer.WriteEndStatement(); } } return(new SqlStatement(writer.ToString(), args.Parameters)); }