static string GetUpdateSql(AnyDbConnection cnn, Update query) { ISqlOmRenderer renderer = Qb.CreateRenderer(cnn.DatabaseProvider); string sql = renderer.RenderUpdate(query); return(sql); }
static string GetInsertSelectSql(AnyDbConnection cnn, InsertSelect query) { ISqlOmRenderer renderer = Qb.CreateRenderer(cnn.DatabaseProvider); string sql = renderer.RenderInsertSelect(query); return(sql); }
public object ExecuteScalar(Select query) { ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider); _dbCommand.CommandText = render.RenderSelect(query); _dbCommand.CommandType = CommandType.Text; FillParameters(_dbCommand, query.Query.CommandParams, render); return(ExecuteScalar()); }
public int ExecuteNonQuery(Update query) { ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider); _dbCommand.CommandText = render.RenderUpdate(query); _dbCommand.CommandType = CommandType.Text; FillParameters(_dbCommand, query.Query.CommandParams, render); return(ExecuteNonQuery()); }
public DbDataReader ExecuteReader(Select query, CommandBehavior behavior) { ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider); _dbCommand.CommandText = render.RenderSelect(query); _dbCommand.CommandType = CommandType.Text; FillParameters(_dbCommand, query.Query.CommandParams, render); return(ExecuteReader(behavior)); }
public long ExecuteNonQuery(Insert query) { ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider); _dbCommand.CommandText = render.RenderInsert(query); _dbCommand.CommandType = CommandType.Text; FillParameters(_dbCommand, query.Query.CommandParams, render); if (!string.IsNullOrEmpty(query.Query.IdentityField)) { return(Convert.ToInt64(ExecuteScalar())); } return(ExecuteNonQuery()); }
public int ExecuteNonQuery(Delete query) { ISqlOmRenderer render = Qb.CreateRenderer(_anyConnection.DatabaseProvider); _dbCommand.CommandText = render.RenderDelete(query); _dbCommand.CommandType = CommandType.Text; FillParameters(_dbCommand, query.Query.CommandParams, render); using (SqlStopwatch sw = new SqlStopwatch(this)) { return(ExecuteNonQuery()); } }
static SqlOmRenderHelper() { string typeName = ConfigurationSettings.AppSettings["SqlOmRenderer"]; Type type = null; if (typeName != null) { type = Type.GetType(typeName, false); } if (type == null) { type = typeof(SqlServerRenderer); } instance = Activator.CreateInstance(type) as ISqlOmRenderer; }
static void FillParameters(DbCommand cmd, ParamCollection parameters, ISqlOmRenderer render) { if (cmd.Parameters.Count > 0) { cmd.Parameters.Clear(); } for (int i = 0; i < parameters.Count; i++) { DbParameter p = cmd.CreateParameter(); p.DbType = parameters[i].DbType; p.Direction = parameters[i].Direction; p.ParameterName = render.CreateParameterName(parameters[i].Name); ((IDbDataParameter)p).Precision = parameters[i].Precision; ((IDbDataParameter)p).Scale = parameters[i].Scale; p.Size = parameters[i].Size; p.IsNullable = parameters[i].IsNullable; p.Value = parameters[i].Value; cmd.Parameters.Add(p); } }
public string GetSql(Update query) { ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider); return(renderer.RenderUpdate(query)); }
public string GetSql(InsertSelect query) { ISqlOmRenderer renderer = Qb.CreateRenderer(AnyDbSetting.DatabaseProvider); return(renderer.RenderInsertSelect(query)); }
/// <summary> /// Renders a single WhereTerm /// </summary> /// <param name="builder"></param> /// <param name="term"></param> protected virtual void WhereClause(StringBuilder builder, WhereTerm term) { if (term.Type == WhereTermType.Compare && term.Op == CompCond.BitwiseAnd) { BitwiseAnd(builder, term); } else if (term.Type == WhereTermType.Compare) { Expression(builder, term.Expr1); builder.Append(" "); Operator(builder, term.Op); builder.Append(" "); Expression(builder, term.Expr2); if (term.Op == CompCond.Like && term.Expr3 != null) { builder.AppendFormat(" escape '{0}'", Convert.ToString(((OmConstant)term.Expr3.Value).Value)); } } else if (term.Type == WhereTermType.In || term.Type == WhereTermType.NotIn || term.Type == WhereTermType.InSubQuery || term.Type == WhereTermType.NotInSubQuery) { Expression(builder, term.Expr1); if (term.Type == WhereTermType.NotIn || term.Type == WhereTermType.NotInSubQuery) { builder.Append(" not"); } builder.Append(" in ("); if (term.Type == WhereTermType.InSubQuery || term.Type == WhereTermType.NotInSubQuery) { if (term.SubQuery is SelectQuery) { ISqlOmRenderer innerRender = this.CreateNew(); builder.Append(innerRender.RenderSelect(term.SubQuery as SelectQuery)); } else if (term.SubQuery is string) { builder.Append((string)term.SubQuery); } else { throw new InvalidQueryException(SR.Err_SubQueryUnavelable); } } else { ConstantList(builder, term.Values); } builder.Append(")"); } else if (term.Type == WhereTermType.Exists || term.Type == WhereTermType.NotExists) { if (term.Type == WhereTermType.NotExists) { builder.Append(" not"); } builder.Append(" exists ("); if (term.SubQuery is SelectQuery) { ISqlOmRenderer innerRender = this.CreateNew(); builder.Append(innerRender.RenderSelect(term.SubQuery as SelectQuery)); } else if (term.SubQuery is string) { builder.Append((string)term.SubQuery); } else { throw new InvalidQueryException( #if !TEST SR.Err_SubQueryUnavelable #else "" #endif ); } builder.Append(")"); } else if (term.Type == WhereTermType.Between) { Expression(builder, term.Expr1); builder.AppendFormat(" between "); Expression(builder, term.Expr2); builder.AppendFormat(" and "); Expression(builder, term.Expr3); } else if (term.Type == WhereTermType.IsNull || term.Type == WhereTermType.IsNotNull) { Expression(builder, term.Expr1); builder.Append(" is "); if (term.Type == WhereTermType.IsNotNull) { builder.Append("not "); } builder.Append(" null "); } }