4 people following this project (follow)

Description
SqlBuilder is a toolset with capabilities to build your SQL without strings. It's a full managed code and help us to build Select, Insert, Update and Delete statements.

Architecture Notes
If your use SqlBuilder, use an Code Generator engine to generate your Data Acess classes.
SqlBuilder is a helper to generate Sql manually. If you need write sql, do it. Before add SqlBuilder in your solution, think about an ORM mapper like Nhibernate, Entity Framework, Gentle.Net, Subsonic or other.

Select teste case (with optional parameters, Between, And, Or, Not, Like, OrderBy, cloning and more)
http://sqlbuilder.codeplex.com/sourcecontrol/changeset/view/27052?projectName=SqlBuilder#444691

Select Statement

SelectSQLBuilder target = new SelectSQLBuilder(); // TODO: Initialize to an appropriate value
target.Tables.Add(new FromItem(LiteralManager.GetLiteralBuilder().BuildTableName("dataBaseName", "dbo", "tableOfView"), "con"));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("idOfTable")));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("Site"), "Nome"));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("columnName01")));
target.Columns.Add(new ColumnItem(LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02")));

OrBinaryOperator orBinaryOperator = new OrBinaryOperator(
		new IsNullOperator(
			LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
		),
		new EqualToOperator(
			LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02"),
			LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
		)
	);
target.WhereClause.Items.Add(orBinaryOperator);
string actual = target.ToSQL();


Delete Statement

DeleteSQLBuilder target = new DeleteSQLBuilder();
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("Table01");
target.WhereClause.Items.Add(
		new EqualToOperator(
			LiteralManager.GetLiteralBuilder().BuildColumnName("ID"), 
			LiteralManager.GetLiteralBuilder().BuildParameter("ID")
		)
);
string actual = target.ToSQL();

Insert Statement

InsertSQLBuilder target = new InsertSQLBuilder(); // TODO: Initialize to an appropriate value
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("dataBaseName.dbo.tableOfView");
target.CollumnsAndValues.Add(
		new SetItem(
			LiteralManager.GetLiteralBuilder().BuildColumnName("columnName01"), 
			LiteralManager.GetLiteralBuilder().BuildParameter("columnName01")
		)
);
target.CollumnsAndValues.Add(
		new SetItem(
			LiteralManager.GetLiteralBuilder().BuildColumnName("columnName02"), 
			LiteralManager.GetLiteralBuilder().BuildParameter("columnName02")
		)
);
string actual = target.ToSQL() + LiteralManager.GetLiteralBuilder().GetLastIdentity(null).ToSQL();

Update Statement

UpdateSQLBuilder target = new UpdateSQLBuilder();
target.TableName = LiteralManager.GetLiteralBuilder().BuildTableName("Table01");
target.CollumnsAndValues.Add(
	new SetItem(
		LiteralManager.GetLiteralBuilder().BuildColumnName("Coluna1"), 
		LiteralManager.GetLiteralBuilder().BuildParameter("Coluna1")
	)
);
target.WhereClause.Items.Add(
	new EqualToOperator(
		LiteralManager.GetLiteralBuilder().BuildColumnName("ID"), 
		LiteralManager.GetLiteralBuilder().BuildParameter("ID")
	)
);
string actual = target.ToSQL();


Brazilian Project Bandeira_brasil_59x0.jpg

Last edited Aug 27 2009 at 2:49 AM by luizcarlosfaria, version 17