Compartir a través de


CDaoDatabase::CreateRelation

Llame a esta función miembro para establecer una relación entre uno o más campos de una tabla principal en la base de datos y uno o más campos de una tabla externa (otra tabla en la base de datos).

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

Parámetros

  • lpszName
    El nombre único del objeto de relación.el nombre debe comenzar con una letra y puede contener un máximo de 40 caracteres.Puede incluir números y caracteres de subrayado pero no puede incluir la puntuación o espacios.

  • lpszTable
    El nombre de la tabla principal de la relación.Si la tabla no existe, MFC produce una excepción de CDaoExceptionescrito.

  • lpszForeignTable
    El nombre de la tabla externa de la relación.Si la tabla no existe, MFC produce una excepción de CDaoExceptionescrito.

  • lAttributes
    Un valor largo que contiene información sobre el tipo de relación.Puede utilizar este valor para exigir la integridad referencial, entre otras cosas.Puede utilizar bit a bit el operador (|) para combinar cualquiera de los valores siguientes (como la combinación tiene sentido):

    • dbRelationUnique Relación es uno por.

    • dbRelationDontEnforce Relación no se aplica (ninguna integridad referencial).

    • dbRelationInherited Relación existe en una base de datos no en ejecución que contiene las dos tablas asociadas.

    • Las actualizaciones dedbRelationUpdateCascade colocarán en cascada (para obtener más información sobre las cascadas, vea las notas).

    • dbRelationDeleteCascade Deletions almacena en cascada.

  • lpszField
    Un puntero a una cadena terminada en null que contiene el nombre de un campo de la tabla principal (denominada por lpszTable).

  • lpszForeignField
    Un puntero a una cadena terminada en null que contiene el nombre de un campo en la tabla externa (denominada por lpszForeignTable).

  • relinfo
    Una referencia a un objeto de CDaoRelationInfo que contiene información sobre la relación que desea crear.

Comentarios

La relación no puede abarcar una consulta o una tabla asociada de una base de datos externa.

Utilice la primera versión de la función cuando la relación implica un campo en cada una de las dos tablas.Utilice la segunda versión cuando la relación implica varios campos.el número máximo de campos en una relación es 14.

Esta acción crea un objeto subyacente de la relación de DAO, pero es un detalle de implementación de MFC desde la encapsulación de MFC de los objetos de la relación se contiene dentro de la clase CDaoDatabase.MFC no proporciona una clase de las relaciones.

Si los atributos de objeto establecido de relación para activar las operaciones en cascada, el motor de base de datos automáticamente o elimina registros en una o más otras tablas cuando se realizan cambios en las tablas relacionadas de la clave principal.

Por ejemplo, suponga que establezca una relación en cascada de cancelación entre una tabla de clientes y una tabla pedidos.Cuando elimina registros de la tabla customers, los registros de la tabla orders relacionada con ese cliente también se eliminan.Además, si crea un vínculo en cascada de cancelación entre la tabla orders y otras tablas, registros de esas tablas automáticamente se eliminan al eliminar los registros de la tabla customers.

Para obtener información relacionada, vea el tema “método de CreateRelation” en la Ayuda de DAO.

Requisitos

encabezado: afxdao.h

Vea también

Referencia

Clase CDaoDatabase

Gráfico de jerarquía

CDaoDatabase::DeleteRelation