void ProcessCreateTableStatement(TSQLUnknownStatement complexStatement) { var recordset = new DataTable(); recordset.Columns.Add("records_affected", typeof(int)); recordset.Rows.Add(AdvancedRecordset.ExecuteNonQuery(AdvancedRecordset.ReturnSql(complexStatement.Tokens))); var outputName = Outputs.FirstOrDefault(e => e.MappedFrom == "records_affected").MappedTo; AdvancedRecordset.ApplyScalarResultToEnvironment(outputName, int.Parse(recordset.Rows[0].ItemArray[0].ToString())); }
void ProcessUpdateStatement(TSQLUnknownStatement complexStatement, int update, ref bool started) { var tokens = complexStatement.Tokens; var outputRecordsetName = ""; for (int i = 0; i < complexStatement.Tokens.Count; i++) { if (i == 1 && tokens[i].Type.ToString() == "Identifier" && (tokens[i - 1].Text.ToUpper() == "UPDATE")) { outputRecordsetName = tokens[i].Text; } if (tokens[i].Type.ToString() == "Keyword" && (tokens[i].Text.ToUpper() == "INSERT")) { outputRecordsetName = tokens[i + 2].Text; } if (tokens[i].Type.ToString() == "Identifier" && (tokens[i].Text.ToUpper() == "REPLACE")) { outputRecordsetName = tokens[i + 2].Text; } if (tokens[i].Type.ToString() == "Keyword" && (tokens[i].Text.ToUpper() == "DELETE")) { outputRecordsetName = tokens[i + 2].Text; } } var sqlQuery = AdvancedRecordset.UpdateSqlWithHashCodes(complexStatement); var recordset = new DataTable(); recordset.Columns.Add("records_affected", typeof(int)); recordset.Rows.Add(AdvancedRecordset.ExecuteNonQuery(sqlQuery)); object sumObject; sumObject = recordset.Compute("Sum(records_affected)", ""); _recordsAffected += Convert.ToInt16(sumObject.ToString()); var mapping = Outputs.FirstOrDefault(e => e.MappedFrom == "records_affected"); if (mapping != null) { AdvancedRecordset.ApplyScalarResultToEnvironment(mapping.MappedTo, _recordsAffected); } var results = AdvancedRecordset.ExecuteQuery("SELECT * FROM " + AdvancedRecordset.HashedRecSets.FirstOrDefault(x => x.recSet == outputRecordsetName).hashCode); foreach (DataTable dt in results.Tables) { AdvancedRecordset.ApplyResultToEnvironment(outputRecordsetName, Outputs, dt.Rows.Cast <DataRow>().ToList(), true, update, ref started); } }