CDaoDatabase::CreateRelation
Chamar essa função de membro para estabelecer um relacionamento entre um ou mais campos em uma tabela principal no banco de dados e um ou mais campos em uma tabela externa (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 relation. o nome deve começar com uma letra e pode conter um máximo de 40 caracteres. Pode incluir números e caracteres sublinhados mas não pode incluir a pontuação ou espaços.lpszTable
O nome da tabela principal da relação. Se a tabela não existir, o MFC gera uma exceção do tipo CDaoException.lpszForeignTable
O nome da tabela externa na relação. Se a tabela não existir, o MFC gera uma exceção do tipo CDaoException.lAttributes
Um valor longo que contém informações sobre o tipo de relacionamento. Você pode usar esse valor para aplicar a integridade referencial, entre outros coisas. Você pode usar OU bit a bits (o operador |) para combinar qualquer um dos seguintes valores (como a combinação faz sentido):a relação dedbRelationUnique é linear.
a relação dedbRelationDontEnforce é aplicada (nenhuma integridade referencial).
a relação dedbRelationInherited existe em um banco de dados estático que contém as duas tabelas anexadas.
Atualizações dedbRelationUpdateCascade (para obter mais conectarão em cascatas, consulte comentários.)
Exclusões dedbRelationDeleteCascade conectarão.
lpszField
Um ponteiro para uma cadeia de caracteres NULL- finalizada que contém o nome de uma campo da tabela principal (chamada por lpszTable).lpszForeignField
Um ponteiro para uma cadeia de caracteres NULL- finalizada que contém o nome de uma campo da tabela externa (chamada por lpszForeignTable).relinfo
Uma referência a um objeto de CDaoRelationInfo que contém informações sobre a relação você deseja criar.
Comentários
O relacionamento não pode envolver uma consulta ou uma tabela anexado 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 a relação envolve mais campos. O número máximo de campos em um relacionamento é 14.
Essa ação cria um objeto subjacente da relação DAO, mas isso é um detalhes de implementação MFC como encapsulamento MFC de objetos de relação está contida dentro da classe CDaoDatabase. O MFC não fornece uma classe para relações.
Se você definir os atributos de objeto relation para ativar automaticamente operações em cascata, atualizações do mecanismo de banco de dados ou excluir registros em uma ou mais outras tabelas quando alterações são feitas em tabelas relacionadas de chave primária.
Por exemplo, suponha que você estabelece uma relação em cascata delete entre uma tabela clientes e uma tabela de pedidos. Quando você excluir registros da tabela clientes, os registros na tabela pedidos relacionada a esse cliente também são excluídos. Além de isso, se você estabelecer relações em cascata delete entre os pedidos tabela e outras tabelas, os registros de essas tabelas são excluídos automaticamente quando você excluir registros da tabela clientes.
Para informações relacionadas, consulte o tópico “método CreateRelation” na ajuda de DAO.
Requisitos
Cabeçalho: afxdao.h