sábado, 22 de junio de 2019

Como relacionar tablas vfp


Set Relation to
Como bien lo dice su palabra, el set relation, permite relacionar 2 tablas o más mediante una serie de instrucciones el cual explicaremos en el siguiente Blog.


Para acceder a registros relacionados entre dos(2) archivos depende tan solo de su capacidad para establecer criterios de selección que definan los conjuntos de registros correspondientes.

Se puede utilizar la orden SET RELATION para establecer un enlace más formal basado en la expresión  de la clave.

Los dos(2) archivos deben estar abiertos, y el área de trabajo que contiene el archivo “PRINCIPAL” debe estar seleccionado, la sintaxis es la siguiente:

SET RALATION TO codigo into alias del archivo

El campo o campos que forman la expresión clave deben estar presentes en ambos archivos, pero no necesariamente deben tener el mismo nombre. El archivo al que se accede a través de la relación debe estar indexado por la expresión clave. El archivo seleccionado puede estar seleccionado por cualquier expresión, o puede no estar indexado. El enlace entre los dos(2) archivos se elimina con la instrucción SET RELATION TO

Cuando se enlazan dos(2) archivo mediante SET RELATION TO , todas las ordenes que desplacen el puntero de registros en el archivo seleccionado dan lugar a que VFP coloque automáticamente el puntero del archivo relacionado en el registro correspondiente basándose en la expresión clave. Si no hay coincidencia, el puntero de registros del archivo relacionado se coloca en el fin de archivo, y todos los campos del “registro actual” de este archivo parecen estar en blanco.

Si hay más de un archivo correspondiente VFP busca el primero. A continuación detallamos un ejemplo de cómo podríamos realizar relacionar dos(2) tablas.

SET SAFETY OFF
SET EXACT OFF
CREATE TABLE p1 free(codigo c(4),nombre c(20))
INSERT INTO p1(codigo,nombre) VALUES ("0001","Informatica")
INSERT INTO p1(codigo,nombre) VALUES ("0002","Medicina")
INSERT INTO p1(codigo,nombre) VALUES ("0003","Teologia")
INSERT INTO p1(codigo,nombre) VALUES ("0004","Literatura")
INSERT INTO p1(codigo,nombre) VALUES ("0005","Ciencia")

CREATE TABLE p2 free(codigo c(4),descrip c(20))

INSERT INTO p2(codigo,descrip) VALUES ("0001","Pascal")
INSERT INTO p2(codigo,descrip) VALUES ("0001","Prolog")
INSERT INTO p2(codigo,descrip) VALUES ("0002","Anatomia")
INSERT INTO p2(codigo,descrip) VALUES ("0003","Labiblia")
INSERT INTO p2(codigo,descrip) VALUES ("0003","Judas")
INSERT INTO p2(codigo,descrip) VALUES ("0004","100 años de Soledad")
INSERT INTO p2(codigo,descrip) VALUES ("0005","Ovnis")
INSERT INTO p2(codigo,descrip) VALUES ("0005","Viaje a las Estrellas")

SELECT 1
use p1 alias p1
index on codigo tag codigo

SELECT 2
use p2 alias p2
index on codigo tag r_codigo

select p1
set relation to codigo into p2
SELECT p2
GO top

browse name p2 nowait
 * Ajustar posición y tamaño
 with p2
  .Top = 200
  .Left = 600
  .Width = 400
  .Height = 200
 endwith

SELECT p1
GO top
 browse name p1 nowait
 * Ajustar posición y tamaño
WITH p1
  .Top = 200
  .Left = 100
  .Width = 400
  .Height = 200
 endwith

Bien, de esta forma es como se venía relacionando las tablas mediante los lenguajes Dbase y foxpro. Ahora es mucho más fácil el relacionar tablas mediante instrucciones sql que vienen dadas dentro del mismo Visual Foxpro.

Mediante las instrucciones de SQL ud. Puede relacionar muchas tablas sin ningún tipo de inconvenientes utilizando los mismos archivos que fueron creados.

En el command de VFP escriba lo siguiente :

CREATE DATABASE prueba
ADD TABLE p1
ADD TABLE p2

Una vez realizado esto, escriba la siguiente instrucción:

CREATE QUERY vista

Te aparecerá una imagen como esta :

Presionas en el botón Other y te aparecerá la siguiente imagen :
Seleccionas una tabla y vuelves a repetir el paso para que selecciones la siguiente. Una vez realizado este proceso te aparecerá la siguiente imagen :


Seguidamente presionas con el mouse en el botón que te aparece en azul y seleccionas p1.codigo y luego haces click sobre el siguiente combo y seleccionas p2.codigo2, luego presionas Ok.

Como puedes observar en la figura superior existen varias formas de realizar estos tipos de relaciones, en otro artículo explicaremos cada una de sus funciones.

Seguidamente nos aparece esta otra imagen :
Presionas el Botón Close y luego presionas Add All y te posicionas en la parte superior en donde aparece p1 y p2 y presionando el botón derecho del mouse verás lo siguiente :


Run Query
View SQL

Si presionas la primera opción se te mostrará en pantalla todo el contenido de las dos(2) tablas, y si presionas el botón de abajo podrás ver la forma  como se hace el procedimiento.
SELECT P1.codigo, P1.nombre, P2.codigo2, P2.descrip;
 FROM ;
     p1 ;
    INNER JOIN p2 ;
   ON  P1.codigo = P2.codigo2

Este procedimiento lo puedes copiar y pegarlo en tu programa y te funcionará perfectamente.

0 comentarios:

Publicar un comentario