PDA

Ver la Versión Completa : como Relacionar dos tablas


vicentnew
17-11-2011, 01:04:34
Estimados, tengo dos tablas en delphi y cada una de ellas se conectan por un adoquery, el problema es que no se como definir una relacion entre el field de una y el field de la otra, con adotable no tenia problemas porque buscaba el masterfield y luego elegia los campos, pero con adoquery no se como hacerlo, trabajo con mysql

bueno, les dejo el ejemplo, quiero reacionar de tabla nombres id_tarjeta con id_tarjeta de tabla reloj

Tabla 1: Nombres
id | Nombres | id_tarjeta
1 Juan 121
2 Pedro 122


Tabla 2: Reloj
id | id_tarjeta | estado
1 121 presente
2 122 presente


Muchas gracias

olbeup
17-11-2011, 08:22:05
Estimados, tengo dos tablas en delphi y cada una de ellas se conectan por un adoquery, el problema es que no se como definir una relacion entre el field de una y el field de la otra, con adotable no tenia problemas porque buscaba el masterfield y luego elegia los campos, pero con adoquery no se como hacerlo, trabajo con mysql

bueno, les dejo el ejemplo, quiero reacionar de tabla nombres id_tarjeta con id_tarjeta de tabla reloj

Tabla 1: Nombres
id | Nombres | id_tarjeta
1 Juan 121
2 Pedro 122


Tabla 2: Reloj
id | id_tarjeta | estado
1 121 presente
2 122 presente


Muchas gracias
Puedes crear dos SQL:
Primera SQL
SELECT
ID
,NOMBRES
,ID_TARJETA
FROM Tabla1
Segunda SQL
SELET
A.ID
,A.ID_TARJETA
,A.ESTADO
FROM Tabla2 ON A
INNER JOIN Tabla1 AS B
ON B.ID_TARJETA = A.ID_TARJETA
Espero que te sirva

Un saludo.

ecfisa
17-11-2011, 12:38:26
Hola.

Teniendo:

Un TAdoConnection: ADOConnection1
Dos TADOQuery: qyReloj y qyNombres
Dos TDataSource: dsReloj y dsNombres

Si lo que buscas es establecer una relación maestro/detalle mediante dos TADOQuery tenes que ajustar las siguentes propiedades:

En qyReloj (master):

Connection = ADOConnection1
SQL = SELECT * FROM RELOJ

En dsReloj: DataSet = qyReloj

En qyNombres (detail):

Connection = ADOConnection1
SQL = SELECT * FROM NOMBRES WHERE ID_TARJETA = :ID_TARJETA
DataSource = dsReloj

En dsNombres: DataSet = qyNombres

Luego solo tenes que asociar los componentes visuales a dsNombre y dsReloj, por ejemplo dos DBGrids.

Saludos.

vicentnew
17-11-2011, 13:06:59
Muchas Gracias mis amigos!!! ya pude lograr una relación mediante adoquery por codigo sql.....