Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Relación maestro-detalle (https://www.clubdelphi.com/foros/showthread.php?t=87239)

doctorhd 03-12-2014 07:14:07

Relación maestro-detalle
 
Hola a todos, tengo la siguiente duda, cuando se realiza una relación maestro-detalle para mostrar datos por ejemplo en una rejilla de datos, defino la consulta maestra en un query y la detalle en otro query(en esta se definen campos maestro-detalle a vincular, indices etc.), a su vez vinculo cada una de las consultas a sus respectivos datasourse, los cuales son vinculados a las rejillas correspondientes. hasta aquí todo bien. Mi duda nace que he visto que cuando definen el query detalle realizan una consulta del tipo:
Código SQL [-]
select * from tabla_detalle where clave_foranea =:clave_foranea
y en otros solo:
Código SQL [-]
select * from tabla_detalle
Cual es la forma correcta de hacerlo, ya que en el query detalle se especifican los campos que devén vincularse en ambas consultas (MasterFields,DetailFields), por lo cual veo innecesario utilizar un parámetro dentro de la consulta detalle que vincule las tablas.

Gracias...

ecfisa 03-12-2014 17:09:55

Hola doctorhd.

Si te fijas con atención verás que los componentes query no cuentan con las propiedadades MasterFields y MasterSource, de allí la necesidad de la inclusión del parámetro de relación cuando se usan estos componentes.

Saludos :)

doctorhd 08-12-2014 01:26:44

Gracias por tu respuesta ecfisa, pero creo que el tema va por otro lado, leyendo por aquí y por halla, encontré que por ejemplo en firedac existen dos tipos de enfoques para establecer relaciones maestro-detalle, una es usando un parámetro en la consulta detalle que especifica el campo que enlaza con tabla maestra, en este enfoque cada vez que el usuario cambia de registro en el maestro se actualiza el detalle ejecutando nuevamente la consulta respectiva y entregando los resultados. El segundo enfoque no requiere la utilización de parámetros que enlacen la relación maestro-detalle en la consulta detalle, pero si se deben especificar los datos de las propiedades MasterFields, IndexFieldNames y DetailFields que servirán de enlace para la relación, la diferencia con el enfoque anterior es que el detalle del maestro es filtrado por el propio componente en memoria sin necesidad de ejecutar nuevamente la consulta. La desventaja de este enfoque es que los datos mostrados son una fotografía del momento en que se ejecuto la consulta. Adicionalmente se pueden conjugar ambos métodos lo que permitira ir agregando al cache los nuevos datos generados. Los detalles de lo que acabo de mencionar los pueden encontrar en el siguiente link:Maestro-Detalle.
Ahora la pregunta es, cual de estos métodos resultara mas eficiente para la lectura de datos.

Gracias...

ecfisa 08-12-2014 01:39:51

Hola doctorhd.

En tu primer mensaje no especificaste que se trataba de FireDac... En ese caso lamento no poder ayudarte, no he tenido roces con él.

Saludos :)


La franja horaria es GMT +2. Ahora son las 20:32:21.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi