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); }
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; }