Enlazar tablas de datos en Velneo es fácil con el uso del enlazador en el esquema de tablas. Cuando conectamos dos tablas entre sí, se crean dos relaciones distintas, una desde la tabla que actúa como maestra hacia la que actúa como histórica y que llamaremos enlace histórico ( EH a partir de ahora) y otra desde la que actúa como histórica hacia la que actúa como maestra y que llamaremos puntero a maestro (PAM a partir de ahora ). El EH nos permite relacionar una ficha de la tabla maestra con varias fichas de la tabla histórica ( relación singular->plural ) con lo que desde una ficha de maestro podemos ver muchos históricos. En cambio el PAM relaciona cada ficha de la tabla histórica con una sola ficha de la tabla maestra ( relación singular->singular ).
En C y en C++ ,un puntero es un tipo especial de variable, que almacena el valor de una direccion de memoria. En Velne
o un puntero es un campo de una tabla en el que se guarda la posición de un registro en otra tabla. Si pudiéramos hacer un simil con la física, un puntero es como un vector. Su punto de origen es un registro de la tabla histórica, su sentido va desde la histórica a la maestra y su punto destino es e registro de la tabla maestra apuntada.
¿Para qué sirve el PMA? Sirve sobre todo para saber siempre a qué registro de la maestra estoy aputando, en un ejemplo concreto el puntero a maestro CLIENTES desde una tabla CABECERA DE FACTURAS, me indicará a qué ficha de CLIENTES pertenece dicha FACTURA. El dato que guarda el campo puntero es el CODIGO de la ficha del cliente al que pertenece la factura.
La utilización de los PAM también nos dá economía de espacio en disco. El hecho de tener guardado sólo el código de la ficha maestra nos evita introducir los datos del cliete cada vez que le hagamos una factura. Simplemente indicándole a qué cliente pertenece mediante el puntero, tenemos la relación establecida.
El EH nos permite conectar una única ficha con muchas fichas de su histórico. Todo EH se establece mediante un índice de la tabla histórica pero no se guarda en un campo como el PMA sino en un componente especial de las tablas llamado Históricos. Los enlaces a histórico pueden ser múltiples, dependiendo de qué indice usemos en la tabla histórica para acceder a sus datos desde la maestra.
Cuando realizamos un enlace entre dos tablas mediante el esquema de tablas y el enlazador se producen varios cambios en las mismas, sobre todo en la tabla que actúa como histórica. Seguiremos con el ejemplo de CORDILLERAS (maestra ) y MONTAÑAS (histórica ).
Si nos fijamos en la tabla Montañas , veremos que se han producido dos cambios: en los campos ha aparecido uno nuevo CORDILLERAS.Este es el puntero a la tabla maestra
Si entramos en sus propiedades veremos ahora que está Enlazado a Tabla de Datos Maestra y el nombre a la tabla que apunta, CORDILLERAS.
Además se ha creado un índice nuevo llamado también Cordilleras, del tipo Aceptar repetidas, es decir, puede haber más de un registro de esta tabla (MONTAÑAS ) cuyo puntero sea el mismo a CORDILLERAS: puede haber muchas MONTAÑAS que pertenezcan a la misma CORDILLERA. Vemos también que ese índice está “alimentado” por el campo puntero Cordilleras.
En la tabla maestra, ha aparecido un nuevo componente histórico, el historico a montañas. Si abrimos las propiedades de dicho EH, veremos que apunta a la tabla MONTAÑAS a través del índice CORDILLERAS de dicha tabla. Esto permitirá que desde una ficha de CORDILLERAS veamos un histórico de sus MONTAÑAS ordenado por el índice, es decir, nos ordenará el listado de MONTAÑAS de dicha CORDILLERA según el orden en que los hayamo introducido.
Imaginemos que queremos que nos ordene ese histórico por la altura de dichas montañas. Creamos en la tabla un campo altura numérico de longitud 3 y con dos decimales sin signo. Creamos un índice nuevo al que podemos llamar Alturas que estará formado por los campos Cordilleras y Alturas, “alimentamos” el índice con los valore de los dos campos. En la tabla CORDILLERAS, nos posicionamos sobre la carpeta Históricos y damos a la tecla Insert o bien, tabla->nuevo objeto de tabla->enlace histórico.
Tabla de datos enlazada: MONTAÑAS Indice: Alturas. Al cargar ahora con este nuevo EH la tabla de MONTAÑAS desde una ficha de COORDILLERAS nos mostrará las montañas que pertenecen a esa cordillera ordenadas por su altura ( siempre de valores más bajos a valores más altos ).
Podremos de esta forma crear los EH que necesitemos para poder ver los históricos de una ficha maestra ordenados de la forma que necesitemos, pudiendo jugar con la composición de los índices que usamos para enlazar contra la histórica.

![]()
Espero que los enlaces empiecen a ser más claros y que veais la potencia que nos brindan a la hora de organizar la información de nuestras aplicaciones de una manera lógica y sencilla.

Una vez colocadas en el esquema, nos queda establecer la relación entre ambas. Para ello usaremos el enlazador.Vamos a establecer la relación Cordilleras es maestra de Montañas, de singular Cordilleras a plural Montañas. Si posiciono el ratón sobre el cuadrante gris superior izquierda de la tabla Cordilleras, aparecerá el icono de una mano además del tooltip que se ve en la imagen. Una vez que aparezca la mano pulsamos botón izq del ratón y aparece una flecha roja. Esta flecha roja nos indica que vamos a establecer una relación de Maestro-Histórico con otra tabla. Arrastraremos sin soltar( con la flecha roja visible ) hasta la tabla Montañas y una vez sobre ella dejaremos de pulsar el botón.
Con ello ya habremos logrado enlazar las dos tablas. El puntero azul, indica que la relación entre Montañas y Cordilleras es de uno a uno ( Una Montaña está en una y sólo en una Cordillera ) mientras que el puntero rojo indica una relación de uno a muchos ( una Cordillera puede tener muchas Montañas )
Siguiendo el mismo procedimiento de creación de enlaces, podemos enlazar también las tablas del ejemplo de los Artículos y los Almacenes con la histórica de ambas ( recordemos que las frases válidas y más lógicas eran LOS ALMACENES DE LOS ARTÍCULOS y LOS ARTICULOS DE LOS ALMACENES plural-plural ) que nos permitirán navegar desde la tabla de Almacenes hasta la de artículos y viceversa.