예제 #1
0
        private void Execute(ParseMode parseMode, string text, int repeat)
        {
            Logger.WriteLine("QueryWindow.Execute");
            commander.ExecuteControls.IsEnabled = true;
            SetStatusMessage(RxExecutingStatus);

            resultsView.Clear();

            if (splitContainer.Panel2Collapsed)
            {
                DoToggleResults(null, null);
            }

            // catch up on Windows messages just to look better
            Application.DoEvents();

            queries.Clear();
            driver.Reset();

            var parser = new StatementParser();

            parser.ParseNotification += new NotificationEventHandler(DoParseNotification);
            StatementCollection statements = GetStatementCollection(parseMode, text);

            // build collection of parsed queries

            Database.Query query;
            System.Collections.Specialized.StringEnumerator e = statements.GetEnumerator();
            while (e.MoveNext())
            {
                query = new Database.Query(e.Current);
                parser.ParseStatement(dbase, query, browser);

                if (parseMode == ParseMode.SqlPlus)
                {
                    query.QueryType = QueryType.SqlPlus;
                }

                queries.Add(query);
            }

            // execute query collection

            resultsView.Lock();

            driver.Execute(queries, basePath, repeat);
        }
예제 #2
0
 private void PostProcessMappings(StatementCollection getEnumeratorStatements)
 {
     V_0 = getEnumeratorStatements.GetEnumerator();
     try
     {
         while (V_0.MoveNext())
         {
             V_1 = V_0.get_Current();
             if (V_1.get_CodeNodeType() != 5 || (V_1 as ExpressionStatement).get_Expression().get_CodeNodeType() != 24)
             {
                 continue;
             }
             V_2 = (V_1 as ExpressionStatement).get_Expression() as BinaryExpression;
             if (!V_2.get_IsAssignmentExpression() || V_2.get_Left().get_CodeNodeType() != 30 || V_2.get_Right().get_CodeNodeType() != 30)
             {
                 continue;
             }
             V_3 = (V_2.get_Left() as FieldReferenceExpression).get_Field().Resolve();
             V_4 = (V_2.get_Right() as FieldReferenceExpression).get_Field().Resolve();
             if (!this.parameterMappings.TryGetValue(V_4, out V_5))
             {
                 continue;
             }
             dummyVar0 = this.parameterMappings.Remove(V_4);
             this.parameterMappings.set_Item(V_3, V_5);
         }
     }
     finally
     {
         if (V_0 != null)
         {
             V_0.Dispose();
         }
     }
     return;
 }