Пример #1
0
        public string makeConstraint(string ReferencingTableNameName, string ReferencingColumnName, string ReferencedTableName, string ReferencedColumnName, bool AddDdData)
        {
            string ReturnVal = string.Empty;

            _CswConstraintDdlOps.add(ReferencingTableNameName, ReferencingColumnName, ReferencedTableName, ReferencedColumnName, AddDdData);
            _CswConstraintDdlOps.apply(ReferencingTableNameName, ReferencingColumnName);

            ReturnVal = _CswConstraintDdlOps.getConstraintName(ReferencingTableNameName, ReferencingColumnName, ReferencedTableName, ReferencedColumnName);

            if (string.Empty == ReturnVal)
            {
                throw (new CswDniException("A constraint name was not reported"));
            }


            Constraint AddedConstraint = new Constraint();

            AddedConstraint.ReferencingTable  = ReferencedTableName;
            AddedConstraint.ReferencingColumn = ReferencedColumnName;
            AddedConstraint.ConstraintName    = ReturnVal;


            _Cosntraints.Add(AddedConstraint);

            return(ReturnVal);
        }//makeConstraint()
Пример #2
0
        public void apply()
        {
            if (_DropColumnExists || CswEnumDdlTableOpType.Drop == DdlTableOpType)
            {
                _copyTable();
                //_BackTableExists = true;
            }//if we're dropping

            if (CswEnumDdlTableOpType.Drop == DdlTableOpType)
            {
                if (CswEnumDdlProcessStatus.Applied != DdlProcessStatus)
                {
                    if (dbg_ManageConstraints)
                    {
                        _CswConstraintDdlOps.apply(_TableName, string.Empty);
                    }

                    _CswNbtResources.CswResources.dropTable(_TableName);
                    DdlProcessStatus = CswEnumDdlProcessStatus.Applied;
                }
            }
            else if (CswEnumDdlTableOpType.Add == DdlTableOpType)
            {
                if (CswEnumDdlProcessStatus.Applied != DdlProcessStatus)
                {
                    _CswNbtResources.CswResources.addTable(_TableName, PkColumnName);
                    if (dbg_ManageConstraints)
                    {
                        _CswConstraintDdlOps.apply(_TableName, string.Empty);
                    }
                    DdlProcessStatus = CswEnumDdlProcessStatus.Applied;
                }
            }

            foreach (CswColumnDdlOp CurrentColumn in _Columns.Values)
            {
                if (CswEnumDdlProcessStatus.Applied != CurrentColumn.DdlProcessStatus)
                {
                    if (CswEnumDdlColumnOpType.Drop == CurrentColumn.DdlColumnOpType)
                    {
                        if (dbg_ManageConstraints)
                        {
                            _CswConstraintDdlOps.apply(_TableName, CurrentColumn.columnname);
                        }
                        _CswNbtResources.CswResources.dropColumn(_TableName, CurrentColumn.columnname);
                    }
                    else if (CswEnumDdlColumnOpType.Add == CurrentColumn.DdlColumnOpType)
                    {
                        _CswNbtResources.CswResources.addColumn(_TableName, CurrentColumn);

                        if (dbg_ManageConstraints)
                        {
                            _CswConstraintDdlOps.apply(_TableName, CurrentColumn.columnname);
                        }
                    }
                    else // DdlColumnOpType.Rename == CurrentColumn.DdlColumnOpType
                    {
                        _CswNbtResources.CswResources.renameColumn(_TableName, CurrentColumn.originalcolumnname, CurrentColumn.columnname);
                    }

                    CurrentColumn.DdlProcessStatus = CswEnumDdlProcessStatus.Applied;
                } //if column was not yet applied
            }     //iterate columns
        }         //apply()