Creación de Relaciones en VFP9

1,364 views
Skip to first unread message

Fox Learner

unread,
Jun 18, 2012, 12:15:51 PM6/18/12
to Comunidad de Visual Foxpro en Español
Me pierdo entre los temas de crear relaciones en VFP.

Podrían explicarme "con manzanas" como se crean las relaciones en
VFP9?..

Suponiendo que ya tengo 2 tablas libres, con un campo indexado, que
debería hacer?..

Modify database, funciona para tablas libres?..

Si borro un registro en cualquiera de las tablas, se vería afectada la
relación?..

Cómo entiendo lo de las FP y FK en Fox?..

Cual es el proceso para tener tablas libres relacionadas que pueda
usar en una consulta que implique a ambas tablas?..

Perdón por la novatez.. Pero leo y leo sin comprender..

Gracias!

Fox Learner

unread,
Jun 18, 2012, 12:17:18 PM6/18/12
to Comunidad de Visual Foxpro en Español
Era PK y FK para las claves primaria y foranea. Perdon por el dedazo..

Fox Learner

unread,
Jun 18, 2012, 12:18:38 PM6/18/12
to Comunidad de Visual Foxpro en Español
Qué es todo eso de las relaciones permanentes y las relaciones
temporales..

Cuando usaría una o la otra?..

edgar suarez kummers

unread,
Jun 18, 2012, 12:33:13 PM6/18/12
to publice...@googlegroups.com
FOXLEARNER:

Jodida la cosa ... mira, gráficamente se arrastra una línea que hace la relación entre dos tablas, pero si te espabilas, yo tengo hasta 9 relacionadas, claro siempre de a 2.

Si en la primera de las 9 se borra un registro, entonces se borran de allí para abajo todos los relacionados.

Ese es el gran poder del VFP.

Yo me juré al purísimo principio que habida cuenta de mi gran ignorancia jamás utilizaría códigos como lo hacen los grandes gurús del grupo, ni siquiera utilizo cursores, sino lo que llaman arreglos que yo lo entiendo como Matrices.

Conoces a la linda SPRANGAREN que entendió mi consejo de usar las barras de herramientas del VFP.

Si vives tranquilo y quieres una mascota comprate un CHIHUAHUA no un SAN BERNARDO ... yo tuve un SAN BERNARDO y uno no sabe en las que se mete sino hasta que tiene uno ... mira, de un solo tarascazo se comen un PAN FRANCÉS DE 30 cm de largo y de DOS LENGUETAZOS se toman una ollada de agua.

El VFP es parecido a lo que tú quieras, sin torearlo es un lindo CHIHUAHUA, pero si lo toreas se convierte en un SAN BERNARDO.

NUNCA ... utilices sino lo que dice M$ ... si quieres adoptar la cara de científico con gafas ... te espero en el infierno chorreando babas.

mis aplicaciones ...


No son espectaculares como las que tienen los grandes gurús ... pero FUNCIONAN.

saludos majo

edgar


El 18 de junio de 2012 11:17, Fox Learner <thenewin...@gmail.com> escribió:
Era PK y FK para las claves primaria y foranea. Perdon por el dedazo..



--

edgar suarez kummers

Fox Learner

unread,
Jun 18, 2012, 12:41:21 PM6/18/12
to Comunidad de Visual Foxpro en Español
Lo que sucede es que uso tablas libres y me siento comodo usandolas
(porque no he visto inconvenientes serios con ellas hasta ahora).

Parece que usando una DBC o una base de datos podría hacer facilmente
lo de las relaciones, pero como lo hago con tablas libres?...

Hasta ahora, con la versatilidad que dan los selects para seleccionar
las areas de trabajo, no veía la necesidad de crear relaciones, pero
según lo que estoy viendo en la escuela, las relaciones son el punto
de partida para todos los sistemas.

Es decir, el diseño de la DB parece revestir mucha trascendencia en la
operatividad del sistema.

Ahora me empieza a preocupar eso de usar relaciones..

Fox Learner

unread,
Jun 18, 2012, 12:46:19 PM6/18/12
to Comunidad de Visual Foxpro en Español
En la escuela estoy viendo lo de usar el dbdesigner con el frame
phpmyadmin para MySql.

Se crean las tablas, las relaciones y se genera un script SQL desde el
dbdesigner.

Luego se crea una BD vacia en el phpmyadmin y se importa el script y
automaticamente genera la BD.

Parece tan facil ahi..

Sin embargo, como lo hago con fox y tablas libres?...

Se pueden hacer relaciones 1:1, uno a muchos y muchos a muchos dentro
de fox con tablas libres?..

Miguel Canchas

unread,
Jun 18, 2012, 12:51:41 PM6/18/12
to publice...@googlegroups.com
Abre tus tablas...
Abre el Data Session, ahí le haces todas las combinaciones que quieres en cuanto a relaciones se refiere, copias los códigos que te genera y con eso ya lo haces, mas fácil, ya pues....


MK

-----Mensaje original-----
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Fox Learner
Enviado el: lunes, 18 de junio de 2012 11:46 a.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: Creación de Relaciones en VFP9

Fox Learner *

unread,
Jun 18, 2012, 1:30:08 PM6/18/12
to publice...@googlegroups.com
Les muestro 2 tablas y luego le di en windows/data session y tengo esto.

Pero no veo donde especificar el tipo de relacion o como conectar las tablas o algo asi..
TABLAS A RELACIONAR.JPG
SET RELATION.JPG

Miguel Canchas

unread,
Jun 18, 2012, 1:46:22 PM6/18/12
to publice...@googlegroups.com

Dale click en Fields…. L

 

MK

edgar suarez kummers

unread,
Jun 18, 2012, 2:01:22 PM6/18/12
to publice...@googlegroups.com
Foxlearner:

Creas una base de datos y abres la parte visual de la base de datos.

Metes las dos tablas.(O sea creas dos tablas), haciendo CLICK dentro del area de la base de datos.

La tabla uno tiene un campo PERROS BRAVOS que es principal.
La tabla dos tiene un campo que es PERROS BRAVOS pero no es principal.

Acercas el MOUSE a la primera y apretas donde dice PERRO BRAVOS
y lo arrastras hasta la segunda donde dice PERROS BRAVOS

LISTO

EDGAR

Fox Learner

unread,
Jun 18, 2012, 2:04:25 PM6/18/12
to Comunidad de Visual Foxpro en Español
Me marcó esto en la ventana de comandos:

SET ORDER TO TAG Idprod OF "c:\productos.cdx" IN Productos
SET RELATION TO idprod INTO Productos ADDITIVE

Entonces parece que la relacion 1 to many ya se creó. Ahora como se
pone en uso ya que el comando USE no dice como puede ponerse en uno
una relacion..

Como se puede ver esta relación en pantalla, es decir la "mezcla" de
las 2 tablas?..

Fox Learner

unread,
Jun 18, 2012, 2:07:17 PM6/18/12
to Comunidad de Visual Foxpro en Español
Gracias estimado Edgar,

Pero comenté que uso tablas libres, no un DBC.

Saludos!

edgar suarez kummers

unread,
Jun 18, 2012, 2:08:29 PM6/18/12
to publice...@googlegroups.com
Foxlearner:


Quieres aprender Griego ...

M$ creó el lenguaje como los libros de SHAUMS 

arveja uno va detrás de arveja dos ...

Hazlo con la parte para DUMMIES como yo ... o sea META LA MANO AL BOLSILLO, ...
APRIETE LAS MONEDAS ...

Cuando lo sepas hacer lo traduces al griego ...

saludos

edgar

edgar suarez kummers

unread,
Jun 18, 2012, 2:09:50 PM6/18/12
to publice...@googlegroups.com
Cuando quieras tablas libres le haces una copia a alguna de las de las bases de datos.

Lewis López

unread,
Jun 18, 2012, 2:10:17 PM6/18/12
to publice...@googlegroups.com
Si usas tablas libres entonces debe usar el comando SET REALATION. 

En la ayuda de vfp ahi buenos ejemplos.

Saludos.
SOLUCIONES PC & REDES
Desarrollo de Software a la medida
Diseño de planos Arquitectónicos
Venta, reparación y mantenimiento de Computadores.
Lewis Oswaldo López Gómez .
Teg. En obras Civiles.
Analista y Programador de sistemas.
Cel: 311 665 0342
Correo:
Skipe 
asaie2010
Córdoba-Colombia



> Date: Mon, 18 Jun 2012 11:07:17 -0700
> Subject: [vfp] Re: Creación de Relaciones en VFP9
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com

Miguel Antúnez

unread,
Jun 18, 2012, 2:11:18 PM6/18/12
to publice...@googlegroups.com
Solo ten en cuenta que los set relations no tienen nada que ver con PK y FK, no los compares por nada.
--
Miguel Angel Antúnez Camones
mant...@gmail.com


Fox Learner

unread,
Jun 18, 2012, 2:18:24 PM6/18/12
to Comunidad de Visual Foxpro en Español
Ok. Gracias! Parece que eso es precisamente lo que hace el asistente
del data session. Crea la relación usando el SET RELATION.

Parece que ya se creo la relación y marca 1 to many (uno a muchos).

Ahora como veo los datos mezclados?... O como pongo la relacion en
uso? Como los presento en un grid?

El set relation me crearía una relación "permanente" o temporal?..

Cuando debo usar una permamente o una temporal?

Lewis López

unread,
Jun 18, 2012, 2:25:45 PM6/18/12
to publice...@googlegroups.com
La relaciones con SET RELATION son temporales, se ejecutan solo en el procedimiento donde son llamadas o creadas.

Saludos.

SOLUCIONES PC & REDES
Desarrollo de Software a la medida
Diseño de planos Arquitectónicos
Venta, reparación y mantenimiento de Computadores.
Lewis Oswaldo López Gómez .
Teg. En obras Civiles.
Analista y Programador de sistemas.
Cel: 311 665 0342
Correo:
Skipe 
asaie2010
Córdoba-Colombia



> Date: Mon, 18 Jun 2012 11:18:24 -0700

> Subject: [vfp] Re: Creación de Relaciones en VFP9
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com
>

Fox Learner

unread,
Jun 18, 2012, 2:48:20 PM6/18/12
to Comunidad de Visual Foxpro en Español
Am.. Estoy leyendo y comienzo a sospechar que para ver los datos
mezclados aquí empezaría el tema del select con el inner join y esas
cosas?..

Bueno, si eso sería con las relaciones temporales..

Como se harían las relaciones permanentes usando tablas libres?...

O no se pueden usar relaciones permanentes con tablas libres???

Cuando debo usar una o la otra?

Richard Gaviria

unread,
Jun 18, 2012, 3:05:46 PM6/18/12
to publice...@googlegroups.com
No pierdas el sentido de las cosas Set Relation hace que una tabla haga relacion con otra u otras tablas, quiere decir que si an la tabla A que es la tabla Padre se mueve el puntero a un determinado registro, en las tablas con las que está relacionada esa tabla también moverán su puntero hacia el registro que tiene el valor de referencia.
En cambio el Inner Join lo que hace es mezclarte una o mas tablas.

- Con Left Join tienes todos los valores de la tabla mencionada a la izquierda de la expresión completada con los valores de las otras tablas con las que hace el join.
- Con Inner Join haces una multiplicación de tuplas, es decir todas los registros coincidentes en una tabla por los registros coincidentes en la otra tabla.
- Con Right Join tienes todos los valores de la tabla mencionada a la derecha de la expresión completada con los valores de las otras tablas con las que hace el join. 

Saludos

Rick.


> Date: Mon, 18 Jun 2012 11:48:20 -0700

> Subject: [vfp] Re: Creación de Relaciones en VFP9
> From: thenewin...@gmail.com
> To: publice...@googlegroups.com
>

mpulla

unread,
Jun 18, 2012, 3:08:47 PM6/18/12
to publice...@googlegroups.com

Hola Fox Learner.

Como dices set relation te crea relaciones temporales.

Que recuerde con tablas libres no se pude usar integridad referencial

Cual es tu problema con bases de datos.?

En lo que es programacion tablas de base de datos con tablas libres no le veo diferencia.

Las Bases de datos te aportan integridad referencial, triggers y mas
Deja que la DB trabaje por ti.


Hacer un:
Select * from Productos where iProductoId = 122 into cursor RsData

Te va a trabajar mucho mas rapido que el Set Relation.

Saludos.
Mauricio

Fox Learner

unread,
Jun 18, 2012, 4:08:55 PM6/18/12
to Comunidad de Visual Foxpro en Español
Mi problema con las bases de datos es que nunca usé DBC's.

Siempre usé tablas libres para fines didacticos y ahora estoy
retomando mi aprendizaje de fox.

Si no hay de otra, le entraré a las DB, pero eso es lo que no quería
jeje

Siento que ahora estoy mas perdido..

Me dicen que no use el set relation.. y que ahora haga selects porque
son mas rapidos.

Eso es lo me cuesta entender de fox... No saber cual es el método
standard de hacer las cosas.

Termino sin saber que es lo correcto y "echo enredos" de nuevo.

Miguel Canchas

unread,
Jun 18, 2012, 4:13:04 PM6/18/12
to publice...@googlegroups.com
Si nos dijeras que es lo que quieres hacer; quizás podríamos ser mas certeros en nuestra ayuda...

MK

-----Mensaje original-----
De: publice...@googlegroups.com [mailto:publice...@googlegroups.com] En nombre de Fox Learner
Enviado el: lunes, 18 de junio de 2012 03:09 p.m.
Para: Comunidad de Visual Foxpro en Español
Asunto: [vfp] Re: Creación de Relaciones en VFP9

Fox Learner

unread,
Jun 18, 2012, 4:12:46 PM6/18/12
to Comunidad de Visual Foxpro en Español
Aclaro que no dije nunca que fox sea una mala herramienta sino que la
documentación te deja en oscuras.

Insisto en que hace falta un manual que te lleve de forma gradual para
encontrar el tesoro.

Tengo el manual de la versión 6 y sus ejemplos son sencillos, pero
obsoletos.

Hay algun manual oficial de la versión 9 aunque sea en Inglés?...

Fox Learner

unread,
Jun 18, 2012, 4:21:05 PM6/18/12
to Comunidad de Visual Foxpro en Español
Lo que quiero hacer es hacer lo que hace cualquier triste modelador de
base de datos como el BDDesigner.

Crear las tablitas y crear las relaciones entre tablas libres. Lo que
dijo Edgar de dar un click en una tabla y luego otro click en otra
zasss! ya estás. Se vería una linea gráfica que conecta ambas tablas
mediante un campo comun.

Luego, esa "relacion" (ahora ya no sé si ese es el termino foxero para
una mezcla de campos entre tablas "relacionadas" por un campo
indexado) permite visualizar o "afectar" ambas tablas al realizar una
operación sobre cualquiera de las tabla.

Pienso que así es como trabajan todos los DB, pero quizás estoy
equivocado. Ahora ya no sé que pensar.

Sé que en fox existe algo llamado Vista que tal vez me permita ver
datos de 2 o mas tablas, pero no sé si para eso se necesite crear una
relacion permanente o temporal.

Alguien sabe?...

edgar suarez kummers

unread,
Jun 18, 2012, 4:25:02 PM6/18/12
to publice...@googlegroups.com
Yo me distraigo mucho viendo como escriben código y más código como Vargas Llosa y Gabriel García Márquez escriben versos.

Yo hice 3 aplicaciones en FoxPro y solamente usé código para los algoritmos de los programas.

O sea la parte matemática de las cámaras, de las coordenadas geográficas y de la parte administrativa.

Recuerdo cuando el amigo de Pablo Rocca iba en su moto y se le dañó y recurrió al grupo ... yo había sido motorista y pude ayudar.

Pero si uno compra un Mercedes Benz (si le alcanza el dinero) lo peor que puede hacer es dedicarse a la mecánica.

Mis aplicaciones funcionan bien y me interesé por mi programa, no por averiguar como se emulaba a M$ mediante código.

Seguramente se aprende mucho, pero el usuario final mira son los resultados.

Eso es algo que aprendí de los compañeros de medicina ... meterle silicona a una mujer en vez de las tetas puede ser mejor negocio que operar un hígado.

Yo no pienso así, pero fíjense lo que dijo mi decano de medicina hace años ...

"Edgar, no estudie obstetricia, porque los bebés salen solos si nadie les ayuda a salir ... difícil es detectar qué produce un TIC por ejemplo cuando la LUNA está en Menguante ... para eso sí hay que saber mucho."

Yo lo hice aquello de pensar pero en electrónica ...


Sé que mi aplicación es única, porque en OMRON Madrid no la habían hecho, ni siquiera en Japón ... y le dediqué casi 30 años a lo mismo y hasta ahora trato de vender el servicio de usarla.

O alguno de Ustedes creería que el adjunto PDF se puede hacer sin haberse tomado varias botellas de RON CUBANO (je,je ) nadie en su sano juicio lo hace.

saludos majos

edgar





torretin.pdf

Fox Learner

unread,
Jun 18, 2012, 4:32:38 PM6/18/12
to Comunidad de Visual Foxpro en Español
Estimado Edgar,

No deseo que alguien que sepa electrónica te piratee tus obras.
Sugiero evitar poner tus diagramas de electrónica a la vista del
mundo.

Sobre tu comentario, es correcto. Los sistemas pueden funcionar. En mi
caso, trato de hacer que funcionen de forma "estándar", como lo haría
cualquier ingeniero en producción. No quiero que el sistema parezca
"una invención" creada con fox sino otro buen sistema hecho con las
técnicas correctas de fox.

Saludos!

edgar suarez kummers

unread,
Jun 18, 2012, 5:02:11 PM6/18/12
to publice...@googlegroups.com
Estimado Foxlearner:

Pues eso es lo que persigo, que los pirateen los diagramas de electrónica, en el fondo lo que pretendo es que quien los abra y los mire sepa que llegar a hacer algo así le puede tomar muchos años y a mí me demora bastante menos, porque lo hago por software.

Lo que pretendo es hacer automatismos a otros países utilizando el Internet.

El que envié en PDF es una LATHE TURRET o sea una torreta CNC para un torno petrolero situado en la frontera con Venezuela.

La verdad es que si entiendo el problema, que es lo difícil, me puede tomar un día hacer el "planteamiento" y 3 minutos resolverlo.

saludos majo

edgar 

mpulla

unread,
Jun 18, 2012, 5:04:32 PM6/18/12
to publice...@googlegroups.com

El metodo estandar es usar selects

Cuando trabajas con DBC's las abres en el programa principal, asi tiene alcanse las DBC's y sus tablas.

Ej.
Open DataBase Z:\DataBase1.Dbc
OPEN DATABASE Z:\DataBase2.DBC

Puedes acceder a tus tablas de 2 manera que tiene el mismo efecto
Use Tabla_DataBase1
ó
Use DataBase1!TablaBase1

Para el select no cambia nada.

Select * from Tabla_DataBase1 where iCodigo = 122 into cursor RsData

Saludos.
Mauricio

Antonio.xt

unread,
Jun 18, 2012, 5:35:09 PM6/18/12
to publice...@googlegroups.com

Fox Learner, si tu sistema lo quieres algo simple, es igual si usas tablas libres o bases de datos, pero no le tengas miedo a la Base de Datos de Fox, la diferencia es que si tus tablas estan en una Base de Datos tienen ciertos atributos o ventajas, que en ocasiones puden no ser tan necesarias, pero de igual manera no te estorban si no las usas, como por ejemplo la diferencia de tener las tablas en Base de Datos son que puedes darle nombres largos a las tablas y campos, puedes poner condiciones o reglas a nivel de tabla o registro, datos predeterminados, indice primario, SP, triggers, Relaciones persistentes para la integridad referencial, esto para que en tus tablas no tengas datos huerfanos o sin relacion.

Pero si todo esto no lo necesitas puedes usar tablas libres, pero ten en cuenta que en estas las relaciones son solo temporales, es decir, al cerrar la tabla se deshace la relacion.

Igual y yo en lo personal ya casi no uso las relaciones con SET RELATION, con los SELECT me funciona mejor. Aunque en realidad no se cual sea tu necesidad.

Si quieres ver como trabaja el SET RELATION con tus 2 tablas haz lo siguiente:

Abre las 2 tablas. Prod.DBF que es tu catalogo de productos, y Productos.DBF
Abre Data Session
Ordena la tabla hija que en este caso es Productos.DBF, la tabla Padre no es necesario que la ordenes
Selecciona la tabla padre, en este caso Prod.DBF
Da click en el boton Relations  (aparece la linea de relacion debajo de la tabla)
Selecciona la tabla hija, en este caso Productos.DBF
Muestra la tabla Prod con un browse
Muestra la tabla Productos con un browse debajo de Prod
Mueve el puntero de la tabla padre y veras como te muestra la tabla hija los registros que coinciden

Saludos...

Charles A. Moreno


Sprangaren

unread,
Jun 18, 2012, 6:39:00 PM6/18/12
to Comunidad de Visual Foxpro en Español
Cuando yo aprendi programacion en la universidad me enseñaron primero
que nada el pseudocodigo y despues la teoria de bases de datos, ambas
cosas por separado. Creo que lo que necesitas es aprender desde cero,
concentrate mas bien en buscar documentacion TEORICA acerca de las
bases de datos, sus funciones, para que sirven, sus caractericas, sus
tipos, las reglas de normalizacion, etc para que despues puedas
despejar tus dudas. Independientemente del manejador que utilices las
bases de datos de tipo relacional siempre son iguales, no deberias
confundirte al usar el manejador de Fox, me da la impresion que tu
confusion es porque te falta reforzar conocimientos. Esa es mi
humilde opinion, espero que te sea util :)

Message has been deleted

Fox Learner

unread,
Jun 18, 2012, 11:39:46 PM6/18/12
to Comunidad de Visual Foxpro en Español
Gracias Sprangaren,

Creeme que ya estoy aburrido de tanta teoria..

Puedes hablarme de pseudocódigo, algoritmos(burbuja, insercion,
busqueda, etc), IA, Redes neuronales, Circuitos Electricos, Sistemas
Digitales, Sistemas Expertos, Labview (Programación Grafica con el
lenguaje G), ecuaciones diferenciales, metodos numéricos, algebra
lineal y cualquier otra cosa relacionada con la Ing. de Software o
Sistemas y te comprenderé sin problemas.

En lo que respecta a las bases de datos, tengo tintes y tengo años de
conocer Fox, pero lo dejé durante mucho tiempo influenciado por la
idea de que ya no había futuro para el mismo. Y como en ese tiempo
el .NET y la web estaban muy verdes y no me simpatizaban, decidi
dedicarme a otra cosas.

Ahora volví a la escuela, pero sabía desde el principio que no me iban
a "enseñar a programar de forma seria".

Ahora estamos llevando un curso de C# con MySql para la titulación y
aprendiendo VB.NET en cuanto hallo un huequito en mi tiempo (algo que
rara vez ocurre).

Hasta abrí el foro VFP a VB.NET para apoyarme y apoyar a los
compañeros que desean aprender a manejar otras herramientas.

https://groups.google.com/group/vfp-a-vbnet?hl=es

En fin.. ai la llevamos.

Tal vez mi error es tratar de hallar una equivalencia de lo que ahora
estoy aprendiendo en MySql en Fox.

Pero al parecer, Antonio parece ser una persona que se explica con
soltura para explicar a un novato como yo.

Ahora me queda "medio claro" que no debería usar SET RELATION y en
lugar usar los JOINs de los selects para generar una relacion temporal
o mezcla de tablas.

En MySql esas relaciones parecen existir de forma permanente..

No le tengo miedo a las bases de fox, solo que nunca las he usado, eso
es todo.

Tengo un sistema para un hotel que ya casi termino y "cambiar el chip"
a esta alturas sería una inversion de tiempo con la que no cuento en
este punto.

La idea es entregar el sistema cuanto antes y al mes o 2 meses
entregar la version "reforzada".

Así trabaja la gente que creo el framework Ruby On Rails del lenguaje
Ruby, usando el metodo incremental o iterativo:

http://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software

http://gettingreal.37signals.com/GR_esp.php

La idea es entregar un buen producto pero "limitado" aunque funcional.

Luego se entrega la primera versión corregida como plus al cliente,
alrededor del mes.

No se hacen versiones "betas". Simplemente se entrega un buen producto
pequeño.

Según mi profesor las versiones son algo así:

1.1.1

El ultimo 1 sería cuando se corrigen "bugs".

El uno de enmedio sería cuando se hacen "agregados" de caracteristicas
al sistema.

El primer uno, se refiere a un "cambio drástico" en la version del
sistema.

Espero que ahora me comprendan mejor.

Saludos!


Carlos Miguel FARIAS

unread,
Jun 19, 2012, 6:47:11 AM6/19/12
to publice...@googlegroups.com
Las relaciones en mysql solo son permanentes entre tablas creadas con el motor de gestión de tablas innodb, o berkeley. Si usas myisam, que es lo más habitual, no se mantienen las relaciones.
Igual, las relaciones se crean con los join, y si necesitas buen desempeño, las claves foráneas de una tabla deben tener un indice asociado.
Saludos: Miguel, La Pampa (RA)

Fox Learner

unread,
Jun 19, 2012, 9:20:07 AM6/19/12
to Comunidad de Visual Foxpro en Español
Gracias Maestro Carlos por la aclaración. Le agradezco! Abriré otro
tema para entrarle a los joins.

integral

unread,
Jun 19, 2012, 10:04:59 AM6/19/12
to Comunidad de Visual Foxpro en Español
Amigo Fox Learner :

Estuve leyendo las respuestas a tu pregunta y bueno si deseas un
ejemplo de codigo de como realizar una relacion entre 2 tablas libres.
Te dire que para mi en mi ultimo proyecto me resulto algo nuevo pues
cuando empeze a programar en Foxpro 2.6 para D.O.S. de esto ya hace
unos años no utilizaba el SET RELATION TO.. Este tema lo maneja
directamente utilizando las tablas involucradas con sus respectivos
archivos de indices .IDX

Bueno a continuacion te muestro el codigo que utilizo.

SELECT KARDEX
SET ORDER To KCLAVE

SELECT ARTICULO
SET ORDER To ARTINDX

SELECT KARDEX
SET RELATION To TIPO_DOC + SER_DOC + NRO_DOC Into ARTICULO ADDITIVE
SET SKIP To ARTICULO

Saludos,

Gabriel
(Lima-Perú)

On Jun 18, 11:15 am, Fox Learner <thenewinquire...@gmail.com> wrote:
> Me pierdo entre los temas de crear relaciones en VFP.
>
> Podrían explicarme "con manzanas" como se crean las relaciones en
> VFP9?..
>
> Suponiendo que ya tengo 2 tablas libres, con un campo indexado, que
> debería hacer?..
>
> Modify database, funciona para tablas libres?..
>
> Si borro un registro en cualquiera de las tablas, se vería afectada la
> relación?..
>
> Cómo entiendo lo de las FP y FK en Fox?..
>
> Cual es el proceso para tener tablas libres relacionadas que pueda
> usar en una consulta que implique a ambas tablas?..
>
> Perdón por la novatez.. Pero leo y leo sin comprender..
>
> Gracias!

Fox Learner

unread,
Jun 19, 2012, 10:40:01 AM6/19/12
to Comunidad de Visual Foxpro en Español
Gracias Integral! Ahora me dicen que mejor use selects, pero veré cual
es más conveniente. Te agradezco!

Geovanny Quirós Castillo

unread,
Jun 19, 2012, 11:11:30 AM6/19/12
to publice...@googlegroups.com
Hola Fox Learner,
creo que se ha discutido bastante sobre el tema, en lo personal no utilizo el famoso SET RELATION, eso lo usaba cuando programaba en fox para DOS, es mucho mejor hacerlo todo con sentencias SQL.
Pero si quieres verlo graficamente te daré un ejemplo sencillo.
 
Tengo 2 tablas, en una los socios y en otra las deudas, vamos a hacer una relacion de 1 a muchos y mostrar los datos en simples browse.
Abrimos las tablas, creamos la relación y hacemos los browse
image
 
la relacion creada se ve asi
image
 
se navega en el area de trabajo se los socios y la de los créditos se actualiza automaticamente
image
 
image
 
Saludos
 
 
 
-----Mensaje original-----
From: Fox Learner
Sent: Monday, June 18, 2012 10:41 AM
To: Comunidad de Visual Foxpro en Español
Subject: [vfp] Re: Creación de Relaciones en VFP9
 
Lo que sucede es que uso tablas libres y me siento comodo usandolas
(porque no he visto inconvenientes serios con ellas hasta ahora).
 
Parece que usando una DBC o una base de datos podría hacer facilmente
lo de las relaciones, pero como lo hago con tablas libres?...
 
Hasta ahora, con la versatilidad que dan los selects para seleccionar
las areas de trabajo, no veía la necesidad de crear relaciones, pero
según lo que estoy viendo en la escuela, las relaciones son el punto
de partida para todos los sistemas.
 
Es decir, el diseño de la DB parece revestir mucha trascendencia en la
operatividad del sistema.
 
Ahora me empieza a preocupar eso de usar relaciones..
image[1].png
image[3].png
image[5].png
image[7].png

Fox Learner

unread,
Jun 20, 2012, 10:44:32 AM6/20/12
to Comunidad de Visual Foxpro en Español
Geovanny, eso fue sencillamente magistral!

Veo que las relaciones no tenían nada que ver con la mezcla de tablas
que quería hacer.

Pero con este ejemplo, comprendo con claridad de que se trata una
relación.

Creo que el concepto de "relaciones" en el dbdesginer y MySql talvez
se refiera a otra cosa..

Si el ejemplo que pusiste funciona "en tiempo real" eso debe ser un
supersistema.

Saludos!

Geovanny Quirós Castillo

unread,
Jun 20, 2012, 11:19:24 AM6/20/12
to publice...@googlegroups.com
Fox Learner,
te cuento algo, esa era una manera de programar por la que pasamos la gran
mayoria de los compa�eros de este foro.
En clipper, fox base y foxpro se hacia de esa manera y aun hoy en dia creo
debe haber programadores que lo siguen asiendo.

En lo personal, todo lo nuevo que hago va contra Sql server, al principio
cuesta pero cuando le tomas el sabor las cosas mejoran.
Saludos


-----Mensaje original-----
From: Fox Learner
Sent: Wednesday, June 20, 2012 8:44 AM
To: Comunidad de Visual Foxpro en Espa�ol
Subject: [vfp] Re: Creaci�n de Relaciones en VFP9

Geovanny, eso fue sencillamente magistral!

Veo que las relaciones no ten�an nada que ver con la mezcla de tablas
que quer�a hacer.

Pero con este ejemplo, comprendo con claridad de que se trata una
relaci�n.

Mario Oviedo

unread,
Jul 18, 2012, 5:11:53 PM7/18/12
to publice...@googlegroups.com
hace años me presentaron visual foxpro y me mostraron la base de datos de visual, son sus relaciones, me dije nunca aprendere y sali corriendo como que si habia visto el diablo, y mas que estaba en ingles, pero cuand los conoci a ustedes, dije esto es pan comido, y comence hacer pruebas, ya no me asusta el inner, los select sql, los grids

gracias a ustedes todo lo tengo en visual foxpro



El 20 de junio de 2012 09:19, Geovanny Quirós Castillo <geovann...@gmail.com> escribió:
Fox Learner,
te cuento algo, esa era una manera de programar por la que pasamos la gran mayoria de los compañeros de este foro.

En clipper, fox base y foxpro se hacia de esa manera y aun hoy en dia creo debe haber programadores que lo siguen asiendo.

En lo personal, todo lo nuevo que hago va contra Sql server, al principio cuesta pero cuando le tomas el sabor las cosas mejoran.

Saludos


-----Mensaje original----- From: Fox Learner
Sent: Wednesday, June 20, 2012 8:44 AM
To: Comunidad de Visual Foxpro en Español
Subject: [vfp] Re: Creación de Relaciones en VFP9

Geovanny, eso fue sencillamente magistral!

Veo que las relaciones no tenían nada que ver con la mezcla de tablas
que quería hacer.


Pero con este ejemplo, comprendo con claridad de que se trata una
relación.

Luis Mata

unread,
Jul 18, 2012, 5:44:54 PM7/18/12
to publice...@googlegroups.com
Cuando lo hagas en SQL Server vas a quedar mas fascinado...
--
 
 
 
Reply all
Reply to author
Forward
0 new messages