internal override void Run(TemplateEnviroment env) { LanguageQueryFunc func = (LanguageQueryFunc)m_engine.DefaultModule.Globals["query"]; IDatabaseSource dbcontext = (IDatabaseSource)m_engine.DefaultModule.Globals["dbcontext"]; string sql = MakeSqlSubs(m_select, m_engine); IBedReader reader = dbcontext.GetAnyDDA().AdaptReader(func(sql)); reader.RunForEachRecordAndDispose(dbcontext.Dialect.DialectCaps.MARS, (rec, index) => ProcessRecord(rec, env, index)); }
internal override void Run(TemplateEnviroment env) { string sql = SelectTemplate.MakeSqlSubs(m_query, m_engine); LanguageQueryFunc func = (LanguageQueryFunc)m_engine.DefaultModule.Globals["query"]; using (IDataReader reader = func(sql)) { if (reader.Read()) { env.Writer.Write(reader[0].SafeToString()); } } }
public override void WriteContent(string filename, IDatabaseSource db, Dictionary <string, string> vars, Dictionary <string, object> extnames) { RunTextWriterDelegate run = TextWriterCompiler.CompileScript(Code, Language); using (FileStream fw = new FileStream(filename, FileMode.Create)) { LanguageQueryFunc func = sql => { var cmd = db.Connection.SystemConnection.CreateCommand(); cmd.CommandText = sql; return(new CommandDataReader(cmd.ExecuteReader(), cmd)); }; extnames["query"] = func; extnames["dbcontext"] = db; run(fw, extnames, null); } }