public override string Generate(DeleteDataExpression expression) { var result = new StringBuilder(); if (expression.IsAllRows) { result.Append(String.Format("DELETE FROM {0}.{1};", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName))); } else { foreach (var row in expression.Rows) { var where = String.Empty; var i = 0; IEnumerable <IDataValue> columnValues = evaluator.Evaluate(row); foreach (var item in columnValues) { if (i != 0) { where += " AND "; } where += String.Format("{0} {1} {2}", Quoter.QuoteColumnName(item.ColumnName), item.Value == null ? "IS" : "=", Quoter.QuoteDataValue(item)); i++; } result.Append(String.Format("DELETE FROM {0}.{1} WHERE {2};", Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), where)); } } return(result.ToString()); }
public override string Generate(DeleteDataExpression expression) { var deleteItems = new List <string>(); if (expression.IsAllRows) { deleteItems.Add(string.Format(DeleteData, Quoter.QuoteTableName(expression.TableName), "1 = 1", CommandDelimiter)); } else { foreach (var row in expression.Rows) { IEnumerable <IDataValue> columnData = evaluator.Evaluate(row); var whereClauses = new List <string>(); foreach (IDataValue item in columnData) { whereClauses.Add(string.Format("{0} {1} {2}", Quoter.QuoteColumnName(item.ColumnName), item.Value == null ? "IS" : "=", Quoter.QuoteDataValue(item))); } deleteItems.Add(string.Format(DeleteData, Quoter.QuoteTableName(expression.TableName), String.Join(" AND ", whereClauses.ToArray()), CommandDelimiter)); } } return(String.Join(MultilineDelimiter, deleteItems.ToArray())); }
public override string Generate(DeleteDataExpression expression) { var result = new StringBuilder(); if (expression.IsAllRows) { result.Append(String.Format("DELETE FROM {0}.{1};", FormatSchema(expression.SchemaName), FormatIdentifier(expression.TableName))); } else { foreach (var row in expression.Rows) { var where = String.Empty; var i = 0; foreach (var item in row) { if (i != 0) { where += " AND "; } where += String.Format("{0} {1} {2}", FormatIdentifier(item.Key), item.Value == null ? "IS" : "=", Constant.Format(item.Value)); i++; } result.Append(String.Format("DELETE FROM {0}.{1} WHERE {2};", FormatSchema(expression.SchemaName), FormatIdentifier(expression.TableName), where)); } } return(result.ToString()); }
public override void Process(Expressions.DeleteDataExpression expression) { truncator.Truncate(expression); CheckTable(expression.TableName); RegisterExpression(expression, typeof(DeleteDataExpression)); var subExpression = new DeleteDataExpression() { SchemaName = expression.SchemaName, TableName = expression.TableName, IsAllRows = expression.IsAllRows }; if (expression.IsAllRows) { InternalProcess(Generator.Generate(expression)); } else { foreach (var row in expression.Rows) { subExpression.Rows.Clear(); subExpression.Rows.Add(row); InternalProcess(Generator.Generate(subExpression)); } } }
public override string Generate(DeleteDataExpression expression) { var deleteItems = new List <string>(); if (expression.IsAllRows) { deleteItems.Add(string.Format(DeleteData, Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), "1 = 1")); } else { foreach (var row in expression.Rows) { var whereClauses = new List <string>(); foreach (KeyValuePair <string, object> item in row) { whereClauses.Add(string.Format("{0} {1} {2}", Quoter.QuoteColumnName(item.Key), item.Value == null ? "IS" : "=", Quoter.QuoteValue(item.Value))); } deleteItems.Add(string.Format(DeleteData, Quoter.QuoteSchemaName(expression.SchemaName), Quoter.QuoteTableName(expression.TableName), String.Join(" AND ", whereClauses.ToArray()))); } } return(String.Join("; ", deleteItems.ToArray())); }
public override string Generate(DeleteDataExpression expression) { var result = new StringBuilder(); if (expression.IsAllRows) { result.AppendFormat("DELETE FROM {0};", Quoter.QuoteTableName(expression.TableName, expression.SchemaName)); } else { foreach (var row in expression.Rows) { var where = string.Empty; var i = 0; foreach (var item in row) { if (i != 0) { where += " AND "; } var op = item.Value == null || item.Value == DBNull.Value ? "IS" : "="; where += string.Format("{0} {1} {2}", Quoter.QuoteColumnName(item.Key), op, Quoter.QuoteValue(item.Value)); i++; } result.AppendFormat("DELETE FROM {0} WHERE {1};", Quoter.QuoteTableName(expression.TableName, expression.SchemaName), where); } } return(result.ToString()); }
public static DeleteDataExpression GetDeleteDataAllRowsExpression() { var expression = new DeleteDataExpression(); expression.TableName = TestTableName1; expression.IsAllRows = true; return(expression); }
public void DeleteVersion(long version) { var expression = new DeleteDataExpression { TableName = VersionTableMetaData.TableName, SchemaName = VersionTableMetaData.SchemaName }; expression.Rows.Add(new ExplicitDataDefinition(new DataValue(VersionTableMetaData.ColumnName, version))); expression.ExecuteWith(Processor); }
public override void Process(DeleteDataExpression expression) { if (!SchemaExists(expression.SchemaName)) { return; } base.Process(expression); }
/// <inheritdoc /> public IDeleteDataBuilder FromTable(string tableName) { var expression = new DeleteDataExpression(_context) { TableName = tableName }; return(new DeleteDataBuilder(expression)); }
public static DeleteDataExpression GetDeleteDataExpression() { var expression = new DeleteDataExpression(); expression.TableName = TestTableName1; expression.Rows.Add(new ExplicitDataDefinition(new DataValue("Name", "Just'in"), new DataValue("Website", null))); return(expression); }
public IDeleteDataSyntax FromTable(string tableName) { var expression = new DeleteDataExpression { TableName = tableName }; _context.Expressions.Add(expression); return(new DeleteDataBuilder(expression)); }
public IDeleteDataSyntax FromTable(string tableName) { var expression = new DeleteDataExpression(_context.CurrentDatabaseProvider, _databaseProviders, _sqlSyntax) { TableName = tableName }; _context.Expressions.Add(expression); return(new DeleteDataBuilder(expression)); }
public override void Process(DeleteDataExpression expression) { expression.ToLower(); if (!TableExists(expression.SchemaName, expression.TableName)) { return; } base.Process(expression); }
public void CanDeleteAllData() { var expression = new DeleteDataExpression { IsAllRows = true, TableName = "Table1" }; var sql = generator.Generate(expression); sql.ShouldBe("DELETE FROM \"public\".\"Table1\";"); }
public void DeleteVersion(long version) { var expression = new DeleteDataExpression { TableName = VersionTableMetaData.TableName, SchemaName = VersionTableMetaData.SchemaName }; expression.Rows.Add(new DeletionDataDefinition { new KeyValuePair <string, object>(VersionTableMetaData.ColumnName, version) }); expression.ExecuteWith(Processor); }
public static DeleteDataExpression GetDeleteDataExpression() { var expression = new DeleteDataExpression(); expression.TableName = TestTableName1; expression.Rows.Add(new DeletionDataDefinition { new KeyValuePair <string, object>("Name", "Just'in"), new KeyValuePair <string, object>("Website", null) }); return(expression); }
public void CanDeleteAllDataWithCondition() { var expression = new DeleteDataExpression { IsAllRows = false, SchemaName = "public", TableName = "Table1" }; expression.Rows.Add(new ExplicitDataDefinition(new DataValue("description", "wibble"))); var sql = generator.Generate(expression); sql.ShouldBe("DELETE FROM \"Table1\" WHERE \"description\" = 'wibble'"); }
public void CanDeleteAllDataWithMultipleConditions() { var expression = new DeleteDataExpression { IsAllRows = false, SchemaName = "public", TableName = "Table1" }; expression.Rows.Add(new ExplicitDataDefinition(new DataValue("description", null), new DataValue("id", 10))); var sql = generator.Generate(expression); sql.ShouldBe("DELETE FROM \"Table1\" WHERE \"description\" IS NULL AND \"id\" = 10"); }
public void Truncate(DeleteDataExpression expression) { expression.TableName = Truncate(expression.TableName); List <DeletionDataDefinition> deletions = new List <DeletionDataDefinition>(); foreach (DeletionDataDefinition deletion in expression.Rows) { DeletionDataDefinition newDeletion = new DeletionDataDefinition(); foreach (var data in deletion) { newDeletion.Add(new KeyValuePair <string, object>(Truncate(data.Key), data.Value)); } deletions.Add(newDeletion); } expression.Rows.Clear(); expression.Rows.AddRange(deletions); }
public void CanDeleteAllDataWithMultipleConditions() { var expression = new DeleteDataExpression { IsAllRows = false, SchemaName = "public", TableName = "Table1" }; expression.Rows.Add(new DeletionDataDefinition { new KeyValuePair <string, object>("description", null), new KeyValuePair <string, object>("id", 10) }); var sql = generator.Generate(expression); sql.ShouldBe("DELETE FROM \"public\".\"Table1\" WHERE \"description\" IS NULL AND \"id\" = 10;"); }
public void CanDeleteAllDataWithCondition() { var expression = new DeleteDataExpression { IsAllRows = false, SchemaName = "public", TableName = "Table1" }; expression.Rows.Add( new DeletionDataDefinition { new KeyValuePair <string, object>("description", "wibble") }); var sql = generator.Generate(expression); sql.ShouldBe("DELETE FROM \"public\".\"Table1\" WHERE \"description\" = 'wibble';"); }
public override string Generate(DeleteDataExpression expression) { var deleteItems = new List <string>(); if (expression.IsAllRows) { deleteItems.Add(string.Format(DeleteData, Quoter.QuoteTableName(expression.TableName, expression.SchemaName), "1 = 1")); } else { foreach (var row in expression.Rows) { var whereClauses = new List <string>(); foreach (KeyValuePair <string, object> item in row) { var op = item.Value == null || item.Value == DBNull.Value ? "IS" : "="; whereClauses.Add( string.Format( "{0} {1} {2}", Quoter.QuoteColumnName(item.Key), op, Quoter.QuoteValue(item.Value))); } deleteItems.Add(string.Format(DeleteData, Quoter.QuoteTableName(expression.TableName, expression.SchemaName), String.Join(" AND ", whereClauses.ToArray()))); } } var output = new StringBuilder(); foreach (var deleteItem in deleteItems) { if (output.Length != 0) { AppendSqlStatementEndToken(output); } output.Append(deleteItem); } return(output.ToString()); }
protected void SetupUndoDeleteData(DeleteDataExpression expression) { CanUndo = true; FirebirdSchemaProvider schema = new FirebirdSchemaProvider(Processor); FirebirdTableSchema table = schema.GetTableSchema(expression.TableName); using (IDataReader ds = Processor.ReadTableData(String.Empty, expression.TableName)) { foreach (DeletionDataDefinition deletion in expression.Rows) { InsertDataExpression insert = new InsertDataExpression() { SchemaName = String.Empty, TableName = expression.TableName }; while (ds.Read()) { bool match = true; if (!expression.IsAllRows) { foreach (var where in deletion) { if (ds[where.Key].ToString() != where.Value.ToString()) { match = false; break; } } } if (match) { InsertionDataDefinition insertion = new InsertionDataDefinition(); foreach (ColumnDefinition colDef in table.Definition.Columns) { insertion.Add(new KeyValuePair <string, object>(colDef.Name, ds[colDef.Name])); } insert.Rows.Add(insertion); } } UndoExpressions.Add(insert); } } }
protected void SetupUndoDeleteData(DeleteDataExpression expression) { CanUndo = false; /* * FirebirdSchemaProvider schema = new FirebirdSchemaProvider(Processor); * FirebirdTableSchema table = schema.GetTableSchema(expression.TableName); * using (DataSet ds = Processor.ReadTableData(String.Empty, expression.TableName)) * { * foreach (IDataDefinition deletion in expression.Rows) * { * InsertDataExpression insert = new InsertDataExpression() { SchemaName = String.Empty, TableName = expression.TableName }; * foreach (DataRow dr in ds.Tables[0].Rows) * { * bool match = true; * if (!expression.IsAllRows) * { * IEnumerable<KeyValuePair<string, object>> columnData = evaluator.GetData(row); * foreach (var where in deletion) * { * if (dr[where.Key].ToString() != where.Value.ToString()) * { * match = false; * break; * } * } * } * if (match) * { * InsertionDataDefinition insertion = new InsertionDataDefinition(); * foreach (ColumnDefinition colDef in table.Definition.Columns) * { * insertion.Add(new KeyValuePair<string, object>(colDef.Name, dr[colDef.Name])); * } * insert.Rows.Add(insertion); * } * } * UndoExpressions.Add(insert); * } * } */ }
public override string Generate(DeleteDataExpression expression) { Truncator.Truncate(expression); return(base.Generate(expression)); }
public virtual void Process(DeleteDataExpression expression) { Process(Generator.Generate(expression)); }
public override void Process(DeleteDataExpression expression) { ExtendedMigrationProcessor.Process(expression); }
public override string Generate(DeleteDataExpression expression) { return(string.Format("{0};", base.Generate(expression))); }
public abstract string Generate(DeleteDataExpression expression);