private ConstraintInfo(IDataReader drConstraint, FirebirdProcessor processor)
        {
            Name         = drConstraint["rdb$constraint_name"].ToString().Trim();
            IsPrimaryKey = drConstraint["rdb$constraint_type"].ToString().Trim() == "PRIMARY KEY";
            IsNotNull    = drConstraint["rdb$constraint_type"].ToString().Trim() == "NOT NULL";
            IsForeignKey = drConstraint["rdb$constraint_type"].ToString().Trim() == "FOREIGN KEY";
            IsUnique     = drConstraint["rdb$constraint_type"].ToString().Trim() == "UNIQUE";
            IndexName    = drConstraint["rdb$index_name"].ToString().Trim();

            if (IsForeignKey)
            {
                using (IDataReader dsForeign = processor.Read(colQuery, AdoHelper.FormatValue(Name)))
                {
                    dsForeign.Read();
                    ForeignIndex = IndexInfo.Read(processor, dsForeign["rdb$const_name_uq"].ToString().Trim());
                    UpdateRule   = GetForeignRule(dsForeign["rdb$update_rule"]);
                    DeleteRule   = GetForeignRule(dsForeign["rdb$delete_rule"]);
                }
            }
        }
Example #2
0
        protected string FormatCascade(string onWhat, Rule rule)
        {
            string action = "NO ACTION";

            switch (rule)
            {
            case Rule.None:
                return("");

            case Rule.Cascade:
                action = "CASCADE";
                break;

            case Rule.SetNull:
                action = "SET NULL";
                break;

            case Rule.SetDefault:
                action = "SET DEFAULT";
                break;
            }

            return(string.Format(" ON {0} {1}", onWhat, action));
        }
 public IAlterColumnOptionSyntax OnDeleteOrUpdate(Rule rule)
 {
     OnDelete(rule);
     OnUpdate(rule);
     return(this);
 }
 public IAlterColumnOptionOrForeignKeyCascadeSyntax OnUpdate(Rule rule)
 {
     CurrentForeignKey.OnUpdate = rule;
     return(this);
 }
Example #5
0
 public void OnDeleteOrUpdate(Rule rule)
 {
     Expression.ForeignKey.OnDelete = rule;
     Expression.ForeignKey.OnUpdate = rule;
 }
Example #6
0
 public ICreateForeignKeyCascadeSyntax OnUpdate(Rule rule)
 {
     Expression.ForeignKey.OnUpdate = rule;
     return(this);
 }
 public ICreateColumnOptionOrForeignKeyCascadeSyntax OnDelete(Rule rule)
 {
     CurrentForeignKey.OnDelete = rule;
     return(this);
 }
Example #8
0
 public ICreateTableColumnOptionOrWithColumnSyntax OnDeleteOrUpdate(Rule rule)
 {
     OnDelete(rule);
     OnUpdate(rule);
     return(this);
 }
Example #9
0
 public ICreateTableColumnOptionOrForeignKeyCascadeOrWithColumnSyntax OnUpdate(Rule rule)
 {
     CurrentForeignKey.OnUpdate = rule;
     return(this);
 }
 public IAlterTableColumnOptionOrAddColumnOrAlterColumnOrForeignKeyCascadeSyntax OnDelete(Rule rule)
 {
     CurrentForeignKey.OnDelete = rule;
     return(this);
 }