Пример #1
0
 public override void VisitColumn(Column column)
 {
     foreach (Rule rule in _rules)
     {
         _report.SetCurrentRule(rule);
         rule.CheckColumn(_report, column);
     }
 }
Пример #2
0
        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;
                    }
                }
            }
        }
Пример #3
0
 internal void SetPreviousColumn(Column column)
 {
     _previousColumn = column;
     _previousColumn._nextColumn = this;
 }
Пример #4
0
 public override void VisitColumn(Column column)
 {
     Console.WriteLine(string.Format("        {0} {1}", column.Name, column.DataType));
 }
Пример #5
0
 public virtual void VisitColumn(Column column)
 {
 }
Пример #6
0
 public virtual void CheckColumn(ViolationReport report, Column column)
 {
 }