public void CheckTable(MetaColumn column) { if (_source == null) { return; } _information = ""; _error = ""; if (IsMasterTable && IsSQL && string.IsNullOrEmpty(Sql)) { _information = Helper.FormatMessage("No Select SQL Statement defined for the Master table..."); return; } if (IsMasterTable && !IsSQL && string.IsNullOrEmpty(DefinitionScript)) { _information = Helper.FormatMessage("No Script defined for the Master table..."); return; } try { if (IsSQL) { string colNames = "", groupByNames = ""; foreach (var col in Columns) { if (column != null && col != column) { continue; } Helper.AddValue(ref colNames, ",", col.Name); if (!col.IsAggregate) { Helper.AddValue(ref groupByNames, ",", col.Name); } } if (string.IsNullOrEmpty(colNames)) { colNames = "1"; } string sql = string.Format("SELECT {0} FROM {1} WHERE 1=0", colNames, FullSQLName); if (!string.IsNullOrEmpty(WhereSQL)) { sql += string.Format("\r\nAND ({0})", Helper.ParseRazor(WhereSQL, this)); } if (Columns.Exists(i => i.IsAggregate) && !string.IsNullOrEmpty(groupByNames)) { sql += string.Format("\r\nGROUP BY {0}", groupByNames); } _error = _source.CheckSQL(sql, new List <MetaTable>() { this }, null, false); } else { BuildNoSQLTable(true); } if (string.IsNullOrEmpty(_error)) { _information = "Table checked successfully"; } else { _information = "Error got when checking table."; } if (column != null) { column.Error = _error; if (string.IsNullOrEmpty(column.Error)) { column.Information = "Column checked successfully"; } else { column.Information = "Error got when checking column."; } column.Information = Helper.FormatMessage(column.Information); } } catch (TemplateCompilationException ex) { _error = Helper.GetExceptionMessage(ex); } catch (Exception ex) { _error = ex.Message; _information = "Error got when checking the table."; } _information = Helper.FormatMessage(_information); UpdateEditorAttributes(); }
/// <summary> /// Check the table. If a MetaColumn is specified, only the column is checked. /// </summary> public void CheckTable(MetaColumn column) { if (_source == null) { return; } Information = ""; Error = ""; if (IsMasterTable && IsSQL && string.IsNullOrEmpty(Sql)) { Information = Helper.FormatMessage("No SQL Select Statement defined for the Master table..."); return; } if (IsMasterTable && !IsSQL && string.IsNullOrEmpty(DefinitionScript)) { Information = Helper.FormatMessage("No Script defined for the Master table..."); return; } try { if (IsSQL) { string colNames = "", groupByNames = ""; foreach (var col in Columns) { if (column != null && col != column) { continue; } Helper.AddValue(ref colNames, ",", col.Name); if (!col.IsAggregate) { Helper.AddValue(ref groupByNames, ",", col.Name); } } if (string.IsNullOrEmpty(colNames)) { colNames = "1"; } string CTE = "", name = ""; GetExecSQLName(ref CTE, ref name); string sql = string.Format("{0}SELECT {1} FROM {2} WHERE 1=0", CTE, colNames, name); if (!string.IsNullOrWhiteSpace(WhereSQL)) { var where = RazorHelper.CompileExecute(WhereSQL, this); if (!string.IsNullOrWhiteSpace(where)) { sql += string.Format("\r\nAND ({0})", RazorHelper.CompileExecute(where, this)); } } if (Columns.Exists(i => i.IsAggregate) && !string.IsNullOrEmpty(groupByNames)) { sql += string.Format("\r\nGROUP BY {0}", groupByNames); } Error = _source.CheckSQL(sql, new List <MetaTable>() { this }, null, false); } else { BuildNoSQLTable(true); } if (string.IsNullOrEmpty(Error)) { Information = "Table checked successfully"; } else { Information = "Error got when checking table."; } if (column != null) { column.Error = Error; if (string.IsNullOrEmpty(column.Error)) { column.Information = "Column checked successfully"; } else { column.Information = "Error got when checking column."; } column.Information = Helper.FormatMessage(column.Information); } } catch (TemplateCompilationException ex) { Error = Helper.GetExceptionMessage(ex); } catch (Exception ex) { Error = ex.Message; Information = "Error got when checking the table."; } Information = Helper.FormatMessage(Information); }