Wednesday, August 24, 2011
A Killer Example for Functional Programming
Published at dotnetslakers.
Monday, August 8, 2011
Get SQL Expression out of WhereClause
Introduction
Several years ago I posted a method to get SQL expression out of a WhereClause. I did not dig deep enough, so it was practically unusable because of Null Object Exception. This post is a long overdue correction.
Implementation
Put the following code in a .cs file under App_Code (website) or Shared (web application) folder.using BaseClasses; using BaseClasses.Data; using BaseClasses.Data.SqlProvider; namespace DingJing { public static class ExtensionWhereClause { public static string GetSQL(this WhereClause wc, BaseTable tbl) { var f = new CompoundFilterExt(wc.GetFilter() as CompoundFilter); return f.GetSQL(tbl.DataAdapter); } } class CompoundFilterExt : CompoundFilter { public CompoundFilterExt(CompoundFilter cf) : base(cf.CompoundingOperator, cf.GetFilters()) { } public string GetSQL(IRelationalDataAdapter adapter) { var arg = new SqlGenerationArgs() { Adapter = adapter, Encoder = new SqlFragmentEncoder() }; var tjl = new TableJoinList(); var s = ToSql(arg, ref tjl); return s.Expression; } } }
The above code adds an extension method GetSQL() to WhereClause. To get the SQL expression, you only need 1 line of code. For example,
public override WhereClause CreateWhereClause() { var wc = base.CreateWhereClause(); if (wc != null) SQLClause.Text = wc.GetSQL(OrdersTable.Instance); return wc; }
Subscribe to:
Posts (Atom)