public void PreprocessStmt(Ast.SqlStmt input)
 {
     foreach (var macro in _macros)
     {
         while (macro.Apply(input))
         {
         }
     }
 }
Beispiel #2
0
    private void ExecuteSqlStmt(Ast.SqlStmt stmt, ScriptEnv env)
    {
        foreach (var beforeStmt in stmt.RunBefore)
        {
            ExecuteStmt(beforeStmt, env);
        }

        try {
            var dt = _notebook.Query(stmt.Sql, env.Vars, env.OnRow);
            if (dt.Columns.Any())
            {
                env.Output.DataTables.Add(dt);
            }
            else
            {
                dt.Dispose();
            }
        } finally {
            foreach (var afterStmt in stmt.RunAfter)
            {
                ExecuteStmt(afterStmt, env);
            }
        }
    }