public override void VisitColumn(Column column) { foreach (Rule rule in _rules) { _report.SetCurrentRule(rule); rule.CheckColumn(_report, column); } }
internal void LoadColumnsFromDatabase(SqlConnection connection) { _columns = new Dictionary<string, Column>(); _orderedColumns = new List<Column>(); using (SqlCommand command = new SqlCommand()) { command.Connection = connection; command.CommandText = "SELECT COLUMN_NAME, ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE, DATA_TYPE, " + "CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH, NUMERIC_PRECISION, " + "NUMERIC_PRECISION_RADIX, NUMERIC_SCALE, DATETIME_PRECISION, COLLATION_NAME " + "FROM INFORMATION_SCHEMA.COLUMNS " + "WHERE TABLE_CATALOG = @Catalog AND TABLE_SCHEMA = @Schema AND TABLE_NAME = @Name ORDER BY ORDINAL_POSITION"; command.Parameters.Add("@Catalog", SqlDbType.NVarChar, 128).Value = _database.Name; command.Parameters.Add("@Schema", SqlDbType.NVarChar, 128).Value = _name.Schema; command.Parameters.Add("@Name", SqlDbType.NVarChar, 128).Value = _name.Name; Column previousColumn = null; using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { string columnName = reader.GetString(0); Column column = new Column(this, reader.GetString(0), GetIntFromReader(reader, 1), GetNullableStringFromReader(reader, 2), reader.GetString(3) == "YES", reader.GetString(4), GetNullableIntFromReader(reader, 5), GetNullableIntFromReader(reader, 6), GetNullableByteFromReader(reader, 7), GetNullableShortFromReader(reader, 8), GetNullableIntFromReader(reader, 9), GetNullableShortFromReader(reader, 10), GetNullableStringFromReader(reader, 11)); _columns[columnName] = column; _orderedColumns.Add(column); if (previousColumn != null) column.SetPreviousColumn(previousColumn); previousColumn = column; } } } }
internal void SetPreviousColumn(Column column) { _previousColumn = column; _previousColumn._nextColumn = this; }
public override void VisitColumn(Column column) { Console.WriteLine(string.Format(" {0} {1}", column.Name, column.DataType)); }
public virtual void VisitColumn(Column column) { }
public virtual void CheckColumn(ViolationReport report, Column column) { }