public virtual QueryCompilation Compile() { QueryCompilation result; string whereSegment, columnSegment, query; ICollection <KeyValuePair <string, object> > fieldParameters; IEnumerable <KeyValuePair <string, object> > allParameters; FilterCompilation filterCompilation; IParameterBuilder parameterBuilder; Asserts.stringIsNotEmpty(this.table); parameterBuilder = this.parameterBuilderFactory.buildInstance(); filterCompilation = this.filter.Compile(parameterBuilder); whereSegment = filterCompilation.FilterSegment; whereSegment = string.IsNullOrWhiteSpace(whereSegment) ? "" : $"WHERE ({whereSegment})"; fieldParameters = Parameters.start(); columnSegment = this.fields .Stringify(field => { string fieldResult, parameter; parameter = parameterBuilder.buildParameter("update_" + field.Key); fieldParameters.push(parameter, field.Value); fieldResult = $" [{field.Key}] = {parameter} "; return(fieldResult); }); query = $@" UPDATE {this.prefix}[{this.table}] SET {columnSegment} {whereSegment} ;"; allParameters = fieldParameters.Concat(filterCompilation.Parameters); result = new QueryCompilation(query, allParameters); return(result); }
public virtual QueryCompilation Compile() { QueryCompilation result; string query; string whereSegment, columnsSegment, mainTable; IList <IEnumerable <string> > allColumns; IEnumerable <string> tableColumns; FilterCompilation filterCompilation; IParameterBuilder parameterBuilder; Asserts.stringIsNotEmpty(this.table); parameterBuilder = this.parameterBuilderFactory.buildInstance(); filterCompilation = this.filter.Compile(parameterBuilder); whereSegment = filterCompilation.FilterSegment; whereSegment = string.IsNullOrWhiteSpace(whereSegment) ? "" : $"WHERE ({whereSegment})"; mainTable = "t0"; allColumns = new List <IEnumerable <string> >(); tableColumns = prv_prepareColumns(mainTable, this.columns); allColumns.Add(tableColumns); Asserts.isTrue(allColumns.Any()); columnsSegment = allColumns .SelectMany(c => c) .Stringify() ; query = $@" SELECT {columnsSegment} FROM {this.prefix}[{Table}] as {mainTable} {whereSegment} ;"; result = new QueryCompilation(query, filterCompilation.Parameters); return(result); }
public virtual QueryCompilation Compile() { QueryCompilation result; string columnsSegment, valuesSegment, query; IDictionary <string, object> parameters; IParameterBuilder parameterBuilder; Asserts.stringIsNotEmpty(this.table); parameterBuilder = this.parameterBuilderFactory.buildInstance(); parameters = this.fields.ToDictionary(f => parameterBuilder.buildParameter("insert_" + f.Key), f => f.Value); columnsSegment = this.fields.Keys.Stringify(f => $" [{f}] "); valuesSegment = parameters.Keys.Stringify(); query = $@" INSERT INTO {this.prefix}[{this.table}] ({columnsSegment}) VALUES ({valuesSegment}) ;"; result = new QueryCompilation(query, parameters); return(result); }
public virtual QueryCompilation Compile() { QueryCompilation result; string whereSegment, query; FilterCompilation filterCompilation; IParameterBuilder parameterBuilder; Asserts.stringIsNotEmpty(this.Table); parameterBuilder = this.parameterBuilderFactory.buildInstance(); filterCompilation = this.filter.Compile(parameterBuilder); whereSegment = filterCompilation.FilterSegment; whereSegment = string.IsNullOrWhiteSpace(whereSegment) ? "" : $"WHERE ({whereSegment})"; query = $@" DELETE FROM {this.prefix}[{this.table}] {whereSegment} ;"; result = new QueryCompilation(query, filterCompilation.Parameters); return(result); }