Partilhar via


CDaoDatabase::CreateRelation

Chame essa função de membro para estabelecer uma relação entre um ou mais campos em uma tabela primária no banco de dados e um ou mais campos em uma tabela estrangeira (outra tabela no banco de dados).

void CreateRelation( 
   LPCTSTR lpszName, 
   LPCTSTR lpszTable, 
   LPCTSTR lpszForeignTable, 
   long lAttributes, 
   LPCTSTR lpszField, 
   LPCTSTR lpszForeignField  
);
void CreateRelation( 
   CDaoRelationInfo& relinfo  
);

Parâmetros

  • lpszName
    O nome exclusivo do objeto de relação.O nome deve começar com uma letra e pode conter no máximo 40 caracteres.Pode incluir números e sublinhado caracteres, mas não pode incluir espaços ou pontuação.

  • lpszTable
    O nome da tabela primária na relação.Se a tabela não existir, o MFC lançará uma exceção do tipo CDaoException.

  • lpszForeignTable
    O nome da tabela estrangeira na relação.Se a tabela não existir, o MFC lançará uma exceção do tipo CDaoException.

  • lAttributes
    Um valor longo que contém informações sobre o tipo de relação.Você pode usar esse valor para impor integridade referencial, entre outras coisas.Você pode usar o operador OR bit a bit (|) para agrupar qualquer um dos seguintes valores (contanto que a combinação faz sentido):

    • dbRelationUnique   O Relação é um-para-um.

    • dbRelationDontEnforce   Relação não é imposta (sem integridade referencial).

    • dbRelationInherited   Existe uma relação em um banco de dados noncurrent contém duas tabelas anexadas.

    • dbRelationUpdateCascade   Atualizações serão em cascata (para obter mais informações sobre cascades, consulte os comentários).

    • dbRelationDeleteCascade   Exclusões serão em cascata.

  • lpszField
    Um ponteiro para uma cadeia terminada com nulo que contém o nome de um campo na tabela primária (nomeado por lpszTable).

  • lpszForeignField
    Um ponteiro para uma cadeia terminada com nulo que contém o nome de um campo na tabela estrangeira (nomeado por lpszForeignTable).

  • relinfo
    Uma referência a um CDaoRelationInfo objeto que contém informações sobre o parceiro que você deseja criar.

Comentários

A relação não pode envolver uma consulta ou uma tabela anexada de um banco de dados externo.

Use a primeira versão da função quando a relação envolve um campo em cada uma das duas tabelas.Use a segunda versão quando o parceiro envolve vários campos.O número máximo de campos em uma relação é 14.

Essa ação cria um objeto de relação DAO subjacente, mas esse é um detalhe de implementação do MFC desde que o encapsulamento do MFC de objetos de relação está contido em classe CDaoDatabase. MFC não fornece uma classe de parceiros.

Se você conjunto a relação de atributos do objeto para ativar as operações em cascata, o mecanismo de banco de dados automaticamente atualiza ou exclui registros em um ou mais Outros tabelas quando são feitas alterações relacionadas a tabelas de chaves primárias.

Por exemplo, suponha que você estabelecer um excluir em cascata relação entre uma tabela clientes e uma tabela Pedidos.Quando você exclui registros da tabela Customers, os registros na tabela pedidos relacionados a esse cliente também serão excluídos.Além disso, se você estabelecer relações de excluir em cascata entre a tabela Pedidos e outras tabelas, registros dessas tabelas são automaticamente excluídos quando você exclui registros da tabela Customers.

Para obter informações relacionadas, consulte o tópico "Método CreateRelation" na Ajuda do DAO.

Requisitos

Cabeçalho: afxdao.h

Consulte também

Referência

Classe CDaoDatabase

Gráfico de hierarquia

CDaoDatabase::DeleteRelation

Outros recursos

CDaoDatabase membros