Rule Enumeração

Definição

Indica a ação que ocorre quando a ForeignKeyConstraint é aplicada.

public enum class Rule
public enum Rule
type Rule = 
Public Enum Rule
Herança

Campos

Name Valor Description
None 0

Nenhuma ação tomada em relação a linhas relacionadas.

Cascade 1

Excluir ou atualizar linhas relacionadas. Este é o padrão.

SetNull 2

Defina valores em linhas relacionadas para DBNull.

SetDefault 3

Defina valores em linhas relacionadas ao valor contido na DefaultValue propriedade.

Exemplos

' The next line goes into the Declarations section of the module:
' SuppliersProducts is a class derived from DataSet.
Private suppliersProducts As SuppliersProducts

Private Sub CreateConstraint()
    ' Declare parent column and child column variables.
    Dim parentColumn As DataColumn
    Dim childColumn As DataColumn
    Dim fkeyConstraint As ForeignKeyConstraint

    ' Set parent and child column variables.
    parentColumn = suppliersProducts.Tables("Suppliers").Columns("SupplierID")
    childColumn = suppliersProducts.Tables("Products").Columns("SupplierID")
    fkeyConstraint = New ForeignKeyConstraint( _
        "SupplierFKConstraint", parentColumn, childColumn)

    ' Set null values when a value is deleted.
    fkeyConstraint.DeleteRule = Rule.SetNull
    fkeyConstraint.UpdateRule = Rule.Cascade
    fkeyConstraint.AcceptRejectRule = AcceptRejectRule.Cascade

    ' Add the constraint, and set EnforceConstraints to true.
    suppliersProducts.Tables("Products").Constraints.Add(fkeyConstraint)
    suppliersProducts.EnforceConstraints = True
End Sub

Observações

Os Rule valores são definidos para e UpdateRule as DeleteRule propriedades de um ForeignKeyConstraint objeto encontradas em DataTableConstraintCollection.

Os Rule valores determinam a ação que ocorre quando um valor numa coluna é eliminado ou atualizado. Dos dois, eliminar um valor é o mais crítico e exigente de atenção ao definir uma regra.

No caso de um valor ser eliminado, Cascade especifica que todas as linhas que contêm esse valor também são eliminadas. SetNull especifica que os valores em todas as colunas filhos são definidos como valores nulos. SetDefault especifica que todas as colunas filhas devem ser definidas para o valor padrão da coluna. None especifica que nenhuma ação ocorrerá, mas são geradas exceções.

No caso de um valor ser atualizado, Cascade especifica que todas as colunas filhas são igualmente atualizadas com o novo valor. SetNull especifica que todas as colunas filhos sejam definidas com valores nulos. SetDefault especifica que todos os valores das colunas filhos devem ser definidos para o valor padrão. None especifica que nenhuma ação deve ser tomada, mas são geradas exceções.

As restrições sobre a DataSet não são aplicadas a menos que a EnforceConstraints propriedade seja true.

Quando o AcceptChanges método é chamado, determina AcceptRejectRule ainda que ação ocorre.

Aplica-se a

Ver também