internal override bool IsConstraintViolated() { Index childIndex = _childKey.GetSortIndex(); object[] uniqueChildKeys = childIndex.GetUniqueKeyValues(); bool errors = false; Index parentIndex = _parentKey.GetSortIndex(); for (int i = 0; i < uniqueChildKeys.Length; i++) { object[] childValues = (object[])uniqueChildKeys[i]; if (!IsKeyNull(childValues)) { if (!parentIndex.IsKeyInIndex(childValues)) { DataRow[] rows = childIndex.GetRows(childIndex.FindRecords(childValues)); string error = SR.Format(SR.DataConstraint_ForeignKeyViolation, ConstraintName, ExceptionBuilder.KeysToString(childValues)); for (int j = 0; j < rows.Length; j++) { rows[j].RowError = error; } errors = true; } } } return(errors); }
internal override bool IsConstraintViolated() { bool result = false; Index index = ConstraintIndex; if (index.HasDuplicates) { // object[] uniqueKeys = index.GetUniqueKeyValues(); for (int i = 0; i < uniqueKeys.Length; i++) { Range r = index.FindRecords((object[])uniqueKeys[i]); if (1 < r.Count) { DataRow[] rows = index.GetRows(r); string error = ExceptionBuilder.UniqueConstraintViolationText(key.ColumnsReference, (object[])uniqueKeys[i]); for (int j = 0; j < rows.Length; j++) { // rows[j].RowError = error; foreach (DataColumn dataColumn in key.ColumnsReference) { rows[j].SetColumnError(dataColumn, error); } } // SQLBU 20011224: set_RowError for all DataRow with a unique constraint violation result = true; } } } return(result); }
internal override bool IsConstraintViolated() { bool flag = false; Index constraintIndex = this.ConstraintIndex; if (constraintIndex.HasDuplicates) { object[] uniqueKeyValues = constraintIndex.GetUniqueKeyValues(); for (int i = 0; i < uniqueKeyValues.Length; i++) { Range range = constraintIndex.FindRecords((object[])uniqueKeyValues[i]); if (1 < range.Count) { DataRow[] rows = constraintIndex.GetRows(range); string error = ExceptionBuilder.UniqueConstraintViolationText(this.key.ColumnsReference, (object[])uniqueKeyValues[i]); for (int j = 0; j < rows.Length; j++) { rows[j].RowError = error; foreach (DataColumn column in this.key.ColumnsReference) { rows[j].SetColumnError(column, error); } } flag = true; } } } return(flag); }
internal override bool IsConstraintViolated() { Index index = key.GetSortIndex(); object[] uniqueKeys = index.GetUniqueKeyValues(); bool errors = false; for (int i = 0; i < uniqueKeys.Length; i++) { Range r = index.FindRecords((object[])uniqueKeys[i]); DataRow[] rows = index.GetRows(r); if (rows.Length > 1) { string error = ExceptionBuilder.UniqueConstraintViolationText(key.Columns, (object[])uniqueKeys[i]); for (int j = 0; j < rows.Length; j++) { rows[j].RowError = error; errors = true; } } } return(errors); }
internal override bool CanEnableConstraint() { if (Table.DataSet == null || !Table.DataSet.EnforceConstraints) { return(true); } Index childIndex = _childKey.GetSortIndex(); object[] uniqueChildKeys = childIndex.GetUniqueKeyValues(); Index parentIndex = _parentKey.GetSortIndex(); for (int i = 0; i < uniqueChildKeys.Length; i++) { object[] childValues = (object[])uniqueChildKeys[i]; if (!IsKeyNull(childValues) && !parentIndex.IsKeyInIndex(childValues)) { return(false); } } return(true); }
internal override bool IsConstraintViolated() { Index sortIndex = this.childKey.GetSortIndex(); object[] uniqueKeyValues = sortIndex.GetUniqueKeyValues(); bool flag = false; Index index2 = this.parentKey.GetSortIndex(); for (int i = 0; i < uniqueKeyValues.Length; i++) { object[] values = (object[])uniqueKeyValues[i]; if (!this.IsKeyNull(values) && !index2.IsKeyInIndex(values)) { DataRow[] rows = sortIndex.GetRows(sortIndex.FindRecords(values)); string str = Res.GetString("DataConstraint_ForeignKeyViolation", new object[] { this.ConstraintName, ExceptionBuilder.KeysToString(values) }); for (int j = 0; j < rows.Length; j++) { rows[j].RowError = str; } flag = true; } } return(flag); }