Relaciones

4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente

versión 6.0


Los comandos de este tema, en particular RELATE ONE y RELATE MANY, establecen y administran las relaciones entre las tablas, tanto las relaciones automáticas como las relaciones manuales. Antes de utilizar los comandos de este tema, por favor consulte el Manual de Diseño de 4D para información sobre la creación de relaciones entre tablas.

Uso de relaciones automáticas entre tablas por programación


Dos tablas pueden estar relacionadas por una relación automática. En general, cuando se crea una relación automática, los registros relacionados son cargados y seleccionados en la tabla relacionada. Muchas operaciones hacen que la relación se establezca.

Estas operaciones incluyen:

Entrada de datos

Lista de registros en la pantalla en un formulario de salida

Informes

Operaciones en una selección de registros como las búsquedas, las ordenaciones y las fórmulas.

Para mejorar el rendimiento, cuando 4D activa las relaciones automáticas, sólo un registro se convierte en el registro actual para la tabla. Para cada una de las operaciones enumeradas anteriormente, el registro relacionado se carga de acuerdo a los siguientes principios:

Si una relación selecciona un solo registro de la tabla relacionada, el registro se carga del disco.

Si una relación selecciona más de un registro de una tabla relacionada, una nueva selección de registros se crea para esa tabla, y la el primer registro en esa selección se carga del disco.

Por ejemplo, en la estructura que se muestra a continuación, si un registro para la tabla [Empleados] se carga y muestra para la entrada de datos, el registro relacionado en la tabla [Empresas] se selecciona y se carga. Igualmente, si un registro para la tabla [Empresas] se carga y muestra para la entrada de datos, los registros relacionados con la tabla [Empleados] son seleccionados.

En esta estructura, la tabla [Empleados] es la Tabla muchos, y la tabla [Empresas] es la Tabla uno. Para recordar este concepto, piense en que "hay muchos empleados relacionados con una empresa" y "cada empresa tiene muchos empleados."

De manera similar, el campo Empresa de la tabla [Empleados] es el Campo muchos, y el campo Nombre en la tabla [Empresas] es el Campo uno.

No siempre es posible que el campo relacionado sea único. Por ejemplo, el campo [Empresas]Nombre puede tener varios registros de nombres de empresas iguales. En esta situación la no unicidad puede manejarse fácilmente creando una relación, la cual siempre será única, u otro campo en la tabla relacionada. Este campo puede ser un número de identificación de la empresa.

La siguiente tabla lista los comandos que utilizan las relaciones automáticas para cargar los registros relacionados durante su ejecución. Todos estos comandos utilizan relaciones automáticas de Muchos a Uno. Sólo los comandos señalados con un Sí activan las relaciones automáticas de Uno a Muchos.

ComandoRelación Uno a Muchos
ADD RECORD
ADD SUBRECORD No
APPLY TO SELECTION No
DISPLAY SELECTION No
EXPORT DIF No
EXPORT SYLK No
EXPORT TEXT No
EXPORT DATA No
MODIFY RECORD Yes
MODIFY SUBRECORD No
MODIFY SELECTION (en entrada de datos)
ORDER BY No
ORDER BY FORMULA No
QUERY BY FORMULA
QUERY SELECTION
QUERY
PRINT LABEL No
PRINT SELECTION
QR REPORT No
SELECTION TO Array No
SELECTION RANGE TO Array No

Activar por programación las relaciones entre tablas


Que las relaciones sean automáticas no significa que los registros relacionados o los registros para una tabla sean seleccionados simplemente porque un comando carga un registro. En algunos casos, después de ejecutar un comando que carga un registro, en ciertos casos usted debe llamar explícitamente los registros relacionados utilizando RELATE ONE o RELATE MANY si necesita acceder a los datos relacionados.

Algunos de los comandos listados en la tabla anterior (tal como los comandos de búsqueda) cargan el registro actual una vez se termina la tarea. En este caso, el registro cargado no selecciona automáticamente los registros relacionados a él. Nuevamente, si necesita acceder a los datos relacionados, debe seleccionar explícitamente los registros seleccionados utilizando RELATE ONE o RELATE MANY.

Ver también

CREATE RELATED ONE, GET AUTOMATIC RELATIONS, GET FIELD RELATION, OLD RELATED MANY, OLD RELATED ONE, RELATE MANY, RELATE MANY SELECTION, RELATE ONE, RELATE ONE SELECTION, SAVE RELATED ONE, SET AUTOMATIC RELATIONS, SET FIELD RELATION.


4D - Documentation   Français   English   German   Español   English   4D v11 SQL, Comandos por temas   4D v11 SQL, Lista alfabética de comandos   4D v11 SQL, Constantes por temas   Regresar   Anterior   Siguiente